演算子のオーバーロードに慣れていないので、一日中頭を悩ませていましたが、operator+ 関数はデータを正しく計算しますが、temp クラスのデータを operator= に渡してクラスの別のインスタンスに割り当てる必要があり、temp を返すことはできません。作業 (データは終了時に破棄されていると思いますか?) 全体のアイデアはメインからのものです x = y + z が呼び出され、y と z からの 2 つのベクトルのデータを追加し、それを x に割り当て、y + の計算を取得しますz は正しく、それを x に渡します。レンガの壁にぶつかりました。何が悪いのですか? または誰かがアイデアを持っていますか?これは私のクラスの私のコードです
VecXd& operator=(const VecXd& rhs)
{
VecXd<V> temp;
temp.dimension = rhs.dimension;
cout << "operator= check dimension is..." << temp.dimension << endl;
for(int i = 0; i < rhs.dimension; i++) //Passing data to x?
{
cout << "test" << endl;
temp.vecArr[i] = rhs.vecArr[i];
cout << temp.vecArr[i] << " our new value" << endl;
}
}
friend VecXd& operator+(VecXd& lhs, VecXd& rhs){
VecXd<V> temp;
cout << lhs.dimension << "-lhs d-" << rhs.dimension << "-rhs d-" << endl; //works
if(lhs.dimension == rhs.dimension) //dimension level check
{
temp.vecArr = new V[lhs.dimension];
for(int i = 0; i < lhs.dimension; i++)
{
temp.vecArr[i] = lhs.vecArr[i] + rhs.vecArr[i];
cout << temp.vecArr[i] << " our new value" << endl;
}
//return *temp.vecArr;
return temp; //***? how to pass data?
}
else{
cout << "Dimensions do not match!!! Error!" << endl;
}
}
何か案が?厳しくしないでください... ハハ... :l