共用方式為


使用特殊成員函式初始設定

本章節將說明使用特殊成員函式的初始化。 它會展開以下的討論區的初始化:

  • 正在初始化彙總何者說明如何初始化 nonclass 型別的陣列和簡單的類別型別的物件。 這些簡單的類別型別不能包含私用或保護的成員,而且它們不能有基底類別。

  • 建構函式,其中解釋如何初始化使用特殊的建構函式的類別型別物件。

初始設定的預設方法是從初始設定式物件初始化執行位元對位元複製。 這項技術是只適用於:

  • 內建型別的物件。 例如:

    int i = 100;
    
  • 指標。 例如:

    int i;
    int *pi = &i;
    
  • 參考。 例如:

    String sFileName( "FILE.DAT" );
    String &rs = sFileName;
    
  • 類別型別,而類別之間具有任何私用或保護的成員、 沒有虛擬的函式,並沒有基底類別的物件。 例如:

    // spec1_special_member_functions.cpp
    // compile with: /LD
    struct Point
    {
        int x, y;
    };
    
    Point pt = { 10, 20 };   // Static storage class only
    

類別可以定義建構函式,以指定更精細的初始設定。 (如需有關如何宣告這類函式的詳細資訊,請參閱建構函式。) 如果物件是類別型別具有建構函式、 物件必須先初始化,或必須有預設建構函式。 特別是未初始化的物件叫用類別的預設建構函式。

請參閱

參考

特殊成員函式 (C++)