爲什麼返回運算符重載允許的構造函數?爲什麼在運算符重載中返回允許的構造函數?
下面是一個例子:
Complex Complex::operator*(const Complex &operand2) const
{
double Real = (real * operand2.real)-(imaginary * operand2.imaginary);
double Imaginary = (real * operand2.imaginary)+(imaginary * operand2.real);
return Complex (Real, Imaginary);
}
這似乎爲對象,而不是對象本身將返回一個構造函數?那裏有什麼回報?
這似乎更有意義:
Complex Complex::operator*(const Complex &operand2) const
{
double Real = (real * operand2.real)-(imaginary * operand2.imaginary);
double Imaginary = (real * operand2.imaginary)+(imaginary * operand2.real);
Complex somenumber (Real, Imaginary);
return somenumber;
}
'復(...)'是*實例*'的Complex'建設。構造函數用於初始化該類型的對象,在這種情況下爲臨時對象。 – 0x499602D2 2014-09-01 23:45:34
「返回構造函數」?你在地球上得出的結論是它「返回一個構造函數」?在C++語言中,構造函數的名稱如「Complex :: Complex」。注 - 兩個相同的部分用'::'分隔。這將是一個構造函數名稱。現在,您在哪裏看到任何在您發佈的代碼中看起來像構造函數的東西? – AnT 2014-09-02 00:22:57
爲什麼不'返回{真實,虛構};'? – 2014-09-02 08:38:36