我整天都在摸索运算符重载的新手,我的 operator+ 函数可以正确计算数据,但是我需要将 temp 类的数据传递给 operator= 以将其分配给我的类的单独实例并且返回 temp 不会工作(我想数据在退出时被破坏?)整个想法来自 main x = y + z 被调用来添加来自 y 和 z 的两个向量的数据并将其分配给 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