《高品質程式設計指南——C/C++》第13章 對象的初始化、拷貝和析構

來源:互聯網
上載者:User

第13章 對象的初始化、拷貝和析構
    建構函式、解構函式和賦值函數(操作符)是每個類最基本的函數。
13.1 建構函式與解構函式的起源
    把對象的初始化工作放在建構函式中,把清除工作放在解構函式中。當建立對象時建構函式被自動執行;當對象消亡時,解構函式被自動執行。這樣就不用擔心忘記對象的初始化和清除工作了。
13.2 為什麼需要建構函式和解構函式
    注意“初始化”與“賦值”的區別。
13.3 建構函式的成員初始化列表
    1)首先調用基類的建構函式,並向它們傳遞所需的參數;
    2)初始化本類的資料成員(包括成員對象的初始化);
    3)在建構函式體內完成其他的初始化工作。
13.4 對象的構造次序和析構次序
    對象的資料成員的初始化次序只由它們在類中聲明的次序決定,因為這個順序是唯一的!而解構函式則完全按照與建構函式相反的次序執行。
13.5 建構函式與解構函式的調用時機
13.6 建構函式和賦值函數的重載
   1、C++允許為類定義多個建構函式,即重載建構函式。當我們為類定義多個建構函式時,設法把其中相同任務的程式碼片段抽取出來形成一個非public的成員函數,然後在適當的地方調用它。
   2、類的賦值函數operator=()也是一種拷貝函數,當然也可以重載。其參數可以是當前類(即類的拷貝賦值操作符),也可以是其它任何類型的參數。

13.7 樣本:類String的建構函式和解構函式

13.8 何時應該定義拷貝的建構函式和拷貝賦值函數
     通常來講,倘若類中含有指標成員或引用成員時,就應該重新定義拷貝建構函式和拷貝賦值函數以及解構函式。
13.9 樣本:類String的拷貝建構函式和拷貝賦值函數
     不要忘記檢查自賦值。
13.10 用偷懶的辦法處理拷貝建構函式和拷貝賦值函數
     即如果不想使用編譯器為我們產生的函數就要明確的阻止。
13.11 如何?衍生類別的基本函數
     基類的建構函式、解構函式和賦值函數都不能被衍生類別繼承。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.