2011-09-13 11 views
1

私は次のコンストラクタがあります。ませんマッチング機能 - C++

RegMatrix(int numRow, int numCol, std::vector<double> fill); 

と私の機能の一つ内側:

RegMatrix RegMatrix::operator+(RegMatrix &matrix) 

私が作成します。

std::vector<ThreeDigits> fill; 

、その後、私は返すを:

return RegMatrix(1,2,fill); 

と言いますが、私は(int,int,std::vector<ThreeDigits>&)を返します...
なぜそれを修正できますか?

+0

「私はstd :: vector&」を返すとはどういう意味ですか?正確なエラーメッセージは何ですか? –

+0

RegMatrix :: RegMatrix(int、int、std :: vector &)への呼び出しで一致する関数がありません –

+0

そして 'ThreeDigits'とは何ですか? –

答えて

4

std::vector<double>は、std::vector<ThreeDigits>と同じタイプではありません。 RegMatrix::RegMatrix(int, int, const std::vector<ThreeDigits>&)を作成するか、またはfillstd::vector<double> fill;の宣言を変更して、この問題を解決できます。

+6

'ThreeDigits'は' double'のtypedefでなければなりません。 –

+1

..そして、 'double'から' ThreeDigits'への暗黙的な変換があっても、それは暗黙的に 'ベクトル'から'ベクトル'への暗黙の変換を意味しません。 –

関連する問題