初識建構函式

baobaobashi發表於2024-05-23

建構函式的任務是初始化類物件的資料成員,無論何時只要類的物件被建立,就會執行建構函式。

一、建構函式注意

  1. 名字和類名相同。
  2. 沒有返回型別。
  3. 有一個(可以為控)的引數列表和一個(可以為空)的函式體。
  4. 可以過載。
  5. 不能被宣告為const。
  6. 當建立一個const物件時,知道建構函式完成初始化過程,物件才能取得常量屬性。
  7. 在物件例項化時編譯器自動呼叫。

二、預設建構函式

只有沒有顯式的定義建構函式時會提供一個預設的建構函式。

Test();     //Test是類的名字

三、初始化列表

在建構函式中,初始化物件的成員變數時,可以使用初始化列表。
而不是在建構函式體內進行賦值。

class MyClass {  
private:  
    int x;  
    std::string str;  
  
public:  
    MyClass(int val, const std::string& s) : x(val), str(s)
    {  
        // 初始化列表在這裡,用於初始化x和str  
        // 建構函式體內可以執行其他初始化或操作  
    }  
  
    void print() const 
    {  
        std::cout << "x: " << x << ", str: " << str << std::endl;  
    }  
};  

四、類外定義建構函式

class MyClass 
{  
private:  
    int x;  
    std::string str;  
  
public:  
    // 宣告建構函式  
    MyClass(int val, const std::string& s);  
};  

// 定義建構函式  
MyClass::MyClass(int val, const std::string& s) : x(val), str(s)
{  
     
} 

相關文章