C++中的構造器(constructor)

什麼是構造器(constructor)?

構造函數是初始化類對象的類的成員函數。在C ++中,當對象(類的實例)創建時,將自動調用構造函數。它是該類的特殊成員函數。

構造函數與普通成員函數有何不同?

構造函數與以下方式的常規函數​​不同:

  • 構造函數與類本身具有相同的名稱
  • 構造函數沒有返回類型
  • 創建對象時會自動調用構造函數。
  • 如果我們沒有指定構造函數,C ++編譯器會爲我們生成一個默認構造函數(不需要參數並且有一個空體)。

構造函數的類型

  1. 默認構造函數,默認構造函數是不帶任何參數的構造函數。它沒有參數。
 // Cpp program to illustrate the 
// concept of Constructors 
#include <iostream> 
using namespace std;  
class construct { 
public: 
    int a, b; 
    // Default Constructor 
    construct() 
    { 
        a = 10; 
        b = 20; 
    } 
}; 
int main() 
{ 
    // Default constructor called automatically 
    // when the object is created 
    construct c; 
    cout << "a: " << c.a << endl 
         << "b: " << c.b; 
    return 1; 
} 

輸出:

a:10
b:20

注意:即使我們沒有顯式定義任何構造函數,編譯器也會自動隱式提供默認構造函數
2. 參數化構造函數:可以將參數傳遞給構造函數。通常,這些參數有助於在創建對象時初始化對象。要創建參數化構造函數,只需像對任何其他函數一樣添加參數。定義構造函數的主體時,請使用參數初始化對象。

// CPP program to illustrate 
// parameterized constructors 
#include <iostream> 
using namespace std; 
  
class Point { 
private: 
    int x, y; 
  
public: 
    // Parameterized Constructor 
    Point(int x1, int y1) 
    { 
        x = x1; 
        y = y1; 
    } 
  
    int getX() 
    { 
        return x; 
    } 
    int getY() 
    { 
        return y; 
    } 
}; 
  
int main() 
{ 
    // Constructor called 
    Point p1(10, 15); 
  
    // Access values assigned by constructor 
    cout << "p1.x = " << p1.getX() << ", p1.y = " << p1.getY(); 
  
    return 0; 
} 

輸出

p1.x = 10,p1.y = 15

在參數化構造函數中聲明對象時,必須將初始值作爲參數傳遞給構造函數。對象聲明的正常方式可能不起作用。可以顯式或隱式調用構造函數。

實施例e =實施例(0,50); //明確的電話

 例e(0,50); //隱含的電話

參數化構造函數的使用:

  1. 它用於在創建時使用不同的值初始化不同對象的各種數據元素。
  2. 它用於重載構造函數。

我們可以在一個類中擁有多個構造函數嗎?
是的,它被稱爲構造函數重載。

複製構造函數:複製構造函數是一個成員函數,它使用同一個類的另一個對象初始化對象。關於複製構造函數的詳細文章。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章