亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中賦值函數和拷貝構造函數(舉例說明)

發布時間:2020-07-14 11:20:26 來源:網絡 閱讀:345 作者:淺唱逝流年 欄目:編程語言

拷貝構造函數發生在對象還沒有創建,需要創建時

如:   MyClass obj1(1);  

            MyClassobj3 = obj1;

賦值操作符重載僅發生在對象已經執行過構造函數,即已經創建的情況下

如:

                 MyClass obj1(1);

                 MyClass obj3;

                obj3 = obj1;



具體代碼如下:

class MyClass

{

public:

                MyClass( int i = 0)

                {

                                cout << i;

                }

                MyClass( const MyClass &x)

                {

                                cout << 2;

                }

                 MyClass &operator=(const MyClass & x)

                {

                                cout << 3;

                                 return *this ;

                }

                ~MyClass()

                {

                                cout << 4;

                }

};

int main()

{

                 MyClass obj1(1);

                 MyClass  obj2(2);

                 MyClass obj3;

                obj3 = obj1;

                 return 0;

}

輸出:1203444

先創建對象obj1,調用構造函數并初始化為1,輸出1

再創建對象obj2,調用構造函數并初始化為2,輸出2

創建對象obj3,調用構造函數,使用默認值為0,輸出0

obj1賦值給obj3時,調用賦值函數,輸出3

再依次析構,析構的順序和調用構造的順序相反

先析構obj3,在析構obj2,最后析構obj1


class MyClass

{

public:

                MyClass( int i = 0)

                {

                                cout << i;

                }

                MyClass( const MyClass &x)

                {

                                cout << 2;

                }

                 MyClass &operator=(const MyClass & x)

                {

                                cout << 3;

                                 return *this ;

                }

                ~MyClass()

                {

                                cout << 4;

                }

};

int main()

{

                 MyClass obj1(1);

                 MyClass   obj2(2);

                 MyClass obj3 = obj1;

                 return 0;

}



輸出:122444

依次創建對象obj1,obj2,調用兩次構造,分別輸出初始化的值1,2

MyClass obj3 = obj1;由于賦值的時候obj3還沒有創建,所以會調用拷貝構造函數,輸出2

再依次析構三個對象


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

韩城市| 固始县| 青神县| 晋江市| 咸丰县| 辰溪县| 鹤壁市| 镇江市| 阿尔山市| 嫩江县| 讷河市| 枣强县| 达尔| 濮阳县| 青龙| 日照市| 汽车| 衡阳市| 武安市| 嘉峪关市| 静安区| 贵阳市| 龙井市| 贵港市| 行唐县| 胶南市| 镇平县| 新邵县| 惠来县| 永顺县| 新平| 饶阳县| 中西区| 峨山| 格尔木市| 泽库县| 佛坪县| 老河口市| 磐石市| 吴忠市| 金乡县|