重载运营商在年底在C++
见编辑我试图重载C++中的+操作,让我补充两个复数。 (添加真实并添加想象)。
这里是我的重载函数:
ComplexNum operator+(ComplexNum x, ComplexNum y){
ComplexNum result;
result.real = (x.getReal() + y.getReal());
result.imag = (x.getImag() + y.getImag());
return result;
}
我的复数构造函数接受两个整数和分配率先诠释真正和第二为int IMAG。
当我尝试将它们添加:
ComplexNum num1 = ComplexNum(1,1);
ComplexNum num2 = ComplexNum(2,3);
ComplexNum num3;
num3 = num1 + num2;
printf("%d",num3.getReal());
我得到0的结果。结果应该是3(添加的num1和num2的实际部分)
编辑:我想通了什么是错的。我有.getReal()和.getImage()返回双。
你知道'std :: complex'模板吗? – 2009-08-17 15:42:21
我想学习如何做 – 2009-08-17 15:42:56
您需要发布所有'ComplexNum'类的代码。特别是数据成员的定义和你的拷贝构造函数和拷贝赋值操作符(如果用户定义的话)。 – 2009-08-17 15:44:16