Heloo,我在重載模板類中的成員函數中的/運算符時遇到問題。我得到錯誤'錯誤C2805:二進制'運算符/'有太少參數',但我想我給操作員足夠的參數。這裏是使用類模板並重載/運算符
template <class T>
typename complex<T>::complex operator/(complex<T> &c)
{
complex temp;
temp.re = (re*c.getRe() + im*c.getIm())/(pow(c.getRe(),2)+pow(c.getIm(),2));
temp.im = (im*c.getRe() - re*c.getIm())/(pow(c.getRe(),2)+pow(c.getIm(),2));
return temp;
}
我的函數聲明中給出以下
T operator/(complex<T> &c);
我的聲明是indside類模板和外部的聲明,但相同的命名空間中的我的頭文件中的代碼部分。如果你需要整個代碼,請讓我知道。謝謝。
對不起,類前綴?這是什麼意思?我也將函數的聲明從T改爲複雜,並且我得到的錯誤數量急劇下降。謝謝。 – oxidising 2012-04-02 10:11:17
@ user1303032,當你在類聲明之外定義一個成員函數的實現時,你需要在函數名前加上class name,如下所示:classA :: func1。 – 2012-04-02 10:37:17
非常好,謝謝。 – oxidising 2012-04-02 11:05:10