構造函數

如果類中一個構造函數都沒有,系統會自動添加一個 無參構造數,該函數什麼都不做

如果類中沒有析構函數,系統會自動添加一個析構函數,該函數什麼都不做

// new    : 創建會自動調用構造函數
// delete : 釋放對象的時候會自動調用析構函數

構造函數:在創建的對 象的時候系統自動調用的函數===> 初始化對象
1、構造函數的函數名和類型相同
2、沒有返回值
3、構造函數可以重載

關於構造函數:
1、如果某個構造函數被調用了,則-定是有一個新對象被創建對象
2、如果創建一個新的對象,必定會調用某個構造函數

析構函數:當對象波釋放的時候,系統會調用對象的析構函數
1、函數名: ~類名
2、沒有返回值
3、沒有參數===> 不能重載, 析構函數只能有一個

~Test()
{
    if (m_pa != nullptr)
    delete m_pa;
    m_pa = nullptr;
    printf (" : a = %d, b = %d\n", m_a, m_b);
}

構造雨數和析構函數的調用順序:先構造的對象後析構

賦值方法:
1、使用括號進行賦值
2、等號法

Test t;
t.show();
// 1、使用括號進行賦值
Test t1(10,20);
t1.show();
// 2、等號法
Test t2 = Test(3,4);
t2.show();
Test t3 = Test(123);
t3.show();
//該方法只能調用單個參數的構造函數
Test t4 = 10; // 等價於 Test t4 = Test(10);
t4.show();
Test t5 = (10, 20);
t5.show();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章