【发布时间】:2013-04-11 14:09:47
【问题描述】:
我想重载 * 运算符,以便它将类的复数子变量相乘并返回复数结果。我的想法如下:
#include <complex>
using namespace std;
class a{
public:
std::complex<double> x0;
...
};
template<class T> complex<T> operator*(const a &lfv, const a &rfv){
return lfv.x0*rfv.x0;
}
但它不起作用......有什么想法或cmets?
【问题讨论】:
-
怎么不起作用?有什么症状?
a类的目的到底是什么?还有你为什么用using namespace std;然后写std::complex? -
“它不起作用”不是一个充分的错误描述。
-
为什么你的操作符需要 tempate 参数?您的课程不是模板,因此返回 complex
就足够了... -
在你的模板函数中,没有使用
T类型。
标签: c++ templates operator-overloading