c++ primer 學習筆記 之 第十二章 類

來源:互聯網
上載者:User
第12章 類12.4.1 建構函式初始化式

      1 初始化const或參考型別資料成員的唯一機會是在建構函式初始化列表中。

      2 在建構函式初始化列表中,成員初始化的次序最好是按各個成員變數在類中聲明的順序初始化。不然會造成用一個未初始化的成員變數去初始化另外一個成員變數。當然也要儘可能的避免使用成員變數來初始化其它成員變數。

12.4.2 預設實參與建構函式

      1 最好在建構函式時提供一個預設實參。

12.4.3 預設建構函式

      1 合成的預設建構函式採用與“變數初始化相同的規則”來初始化其內部成員。

      2 類內部的類類型的成員通過各自的預設建構函式進行初始化。

      3 內建和複合類型的成員,如指標和數組。只有當類對象定義為全域範圍中才進行初始化;對象若定義在局部範圍時,內建和複合類型的成員不進行初始化。

      4 每個建構函式應該為每個內建或複合類型的成員提供初始化。沒有初始化內建或複合類型成員的建構函式,將使那些成員處於未定義的狀態。

      5 若不給這些成員初始化,除了作為賦值目標外,以任何方式使用一個未定義的成員都是錯誤的。因此,最好使用建構函式為每個成員設定一個明確的已知狀態,這樣才不會出現錯誤。

12.6.1 static 類成員

     1 不像普通的資料成員,static資料成員獨立於該類的任意對象而存在;每個static資料成員是與類關聯的對象,並不與該類的對象相關聯。

     2 使用static成員而不使用全域對象有三個優點:

             1)static成員的名字是在類的範圍中,因此可以避免與其它類的成員或全域對象名字衝突。

             2)可以實施封裝。static成員可以是私人成員,而全域對象不可以。

             3)通過閱讀程式容易看出static成員是與特定類關聯的。這種可見度可清晰的顯示程式員的意圖,也即代碼清晰。

      3 static
成員函數是類的組成部分但不是任何對象的組成部分。static成員函數也不會有this指標。此函數可以直接存取所屬類的static成員,但不能直接使用非static成員。

      4 可能通過範圍操作符從類中直接調用static成員,或者通過對象、引用或指向該類類型對象的指標間接調用。

      5 static資料成員必須在類定義體的外部定義。它不是通過類的建構函式進行初始化,而是應該在定義時進行初始化。

      6  非static資料成員不能用作預設實參,因為它的值不能獨立於所屬的對象而使用。使用非static資料成員作預設實參,將無法提供對象以擷取該成員的值,因而是錯誤的。

      7 類的靜態成員函數可以通過類的對象訪問類的非待用資料成員。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.