1

プロジェクトをコンパイルしようとすると、C2440 エラーが表示'initializing' : cannot convert from 'vector<component_count>' to 'vector_2D'.され、C2440 に関する MSDN ドキュメントにThe compiler cannot cast from 'type1' to 'type2'.は、基本クラスのベクトルがあると書かれています。

template <unsigned int component_count>
class vector {...}

派生クラス vector_2D:

class vector_2D : public vector<2>

私の基本クラスは、デフォルト コンストラクターとコピー コンストラクター、および演算子のオーバーロードを定義します。私にエラーを与えるコードは次のとおりです。

vector_2D character_position = pen_position + vector_2D(offset_x, offset_y);

pen_position は以前に

vector_2D pen_position(string_position);

エラーを修正できないようです。何が問題なのか、および/またはそれを修正する方法を誰かが指摘できますか?

4

1 に答える 1

0
vector operator + (const vector& a_vector) const

が問題です。ベースを返し、それを派生に割り当てようとしています。

最も簡単な修正は、オーバーロードを提供することです

vector_2D operator + (const vector_2D& a_vector) const
于 2013-01-09T02:46:18.120 に答える