仕様は、行列の要素にアクセスして割り当てるために括弧()演算子をオーバーロードすることですが、私のオーバーロード関数が返す必要があるものを把握するのは苦労しています。 Overloaded()operator
ブリーフメイン://The .h files and everything has been included, my other functions work just not this one
cout << "Test(): " << endl;
m0(0,0) = 17.25;
m0(1,5) = -2.33;
m0(5,5) = 233; // There is class exception handling I just haven't included it
関数の実装:
Matrix* Matrix::operator() (const unsigned int m, const unsigned int n) //We were told they HAD to be unsigned int
{
Matrix *ptr = &matrix[m][n];
return ptr;
}
エラー:
main.cpp: In function ‘int main()’:
main.cpp:59:15: error: lvalue required as left operand of assignment
m0(0,0) = 17.25;
^~~~~
main.cpp:60:16: error: lvalue required as left operand of assignment
m0(1,5) = -2.33;
^~~~
main.cpp:61:15: error: lvalue required as left operand of assignment
m0(5,5) = 233; // should throw an exception
が、私はそうではないだけをしてください、エラーが言っているかを理解それをもう一度読んで修正してください。私は実際に私の関数が何を返すのかを修正する方法を確かめていないので、メインのdouble値を実際に何かに割り当てることができます。事前
オブジェクト全体への参照ではなく要素への参照を返すことで、オブジェクトに割り当てることができます。 –