C++ 建構函式


建構函式是類的函式,在建立類的新的物件時執行。建構函式與類名相同,並且沒有返回值型別,即使是void也不行。它們主要用於為類的變數提供初始值。

兩種主要的建構函式型別是預設建構函式和引數化建構函式。以下是關於它們的詳細資訊。

預設建構函式

預設建構函式不接受任何引數。如果程式設計師沒有顯式提供預設建構函式,則編譯器會提供一個隱式預設建構函式。在這種情況下,變數的預設值為0。

演示預設建構函式的程式如下所示。

示例

 線上演示

#include <iostream>
using namespace std;
class A {
   private:
   int num1, num2 ;
   public:
   A() {
      num1 = 5;
      num2 = 7;
   }
   void display() {
      cout<<"num1 = "<< num1 <<endl;
      cout<<"num2 = "<< num2 <<endl;
   }
};
int main() {
   A obj;
   obj.display();
   return 0;
}

輸出

num1 = 5
num2 = 7

在上面的程式中,類A包含一個預設建構函式,它將num1和num2初始化為5和7。它還包含一個函式display(),用於列印num1和num2的值。程式碼片段如下所示。

class A {
   private:
   int num1, num2 ;
   public:
   A() {
      num1 = 5;
      num2 = 7;
   }
   void display() {
      cout<<"num1 = "<< num1 <<endl;
      cout<<"num2 = "<< num2 <<endl;
   }
};

main()函式包含類型別A的物件定義。然後呼叫display()函式。如下所示。

A obj;
obj.display();

引數化建構函式

引數化建構函式可以接受引數,以便在建立物件時對其進行初始化。引數的新增方式與普通函式相同。引數化建構函式可以隱式或顯式呼叫。

演示引數化建構函式的程式如下所示。

示例

 線上演示

#include <iostream>
using namespace std;
class A {
   private:
   int num1, num2 ;
   public:
   A(int n1, int n2) {
      num1 = n1;
      num2 = n2;
   }
   void display() {
      cout<<"num1 = "<< num1 <<endl;
      cout<<"num2 = "<< num2 <<endl;
   }
};
int main() {
   A obj(3,8);
   obj.display();
   return 0;
}

輸出

num1 = 3
num2 = 8

在上面的程式中,類A包含一個引數化建構函式,它使用n1和n2提供的值初始化num1和num2。它還包含一個函式display(),用於列印num1和num2的值。程式碼片段如下所示。

class A {
   private:
   int num1, num2 ;
   public:
   A(int n1, int n2) {
      num1 = n1;
      num2 = n2;
   }
   void display() {
      cout<<"num1 = "<< num1 <<endl;
      cout<<"num2 = "<< num2 <<endl;
   }
};

main()函式包含類型別A的物件定義。然後呼叫display()函式。如下所示。

A obj(3,8);
obj.display();

更新於:2020年6月24日

9K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告