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();
廣告