天天看點

c++類的構造函數

http://www.cnblogs.com/xkfz007/archive/2012/05/11/2496447.html

Complex test1(const Complex& c)
{    return c;}
Complex test2(const Complex c)
{    return c;}
Complex& test5(Complex& c)
{    return c;}
           

測試代碼:

一、

int main()
{
    Complex a;
    Complex b=test1(a);
    Complex c=test5(a);
}
           

其中,第二句和第三句,都隻調用一次拷貝構造函數,無臨時對象。語句屬于複制初始化。

二、

int main()
{
    Complex a,b,c;
    b=test1(a);
    c=test5(a);
}
           

其中,後兩句各調用一次指派操作符重載函數,但第二句中為函數傳回值生成一個臨時對象。語句為指派。