是的,C++ 構造函數可以重載。在 C++ 中,構造函數的重載允許您以相同的方法名定義多個構造函數,但它們具有不同的參數列表。這使您可以根據傳遞給構造函數的參數類型和數量來初始化對象。
以下是一個簡單的示例,說明如何在 C++ 中重載構造函數:
#include <iostream>
using namespace std;
class MyClass {
public:
// 默認構造函數
MyClass() {
cout << "Default constructor called" << endl;
}
// 帶一個 int 參數的構造函數
MyClass(int a) {
cout << "Constructor with one integer parameter called: "<< a << endl;
}
// 帶兩個 int 參數的構造函數
MyClass(int a, int b) {
cout << "Constructor with two integer parameters called: "<< a << ", "<< b << endl;
}
};
int main() {
MyClass obj1; // 調用默認構造函數
MyClass obj2(42); // 調用帶一個 int 參數的構造函數
MyClass obj3(8, 16); // 調用帶兩個 int 參數的構造函數
return 0;
}
在這個例子中,我們定義了一個名為 MyClass
的類,該類具有三個構造函數:一個默認構造函數和兩個帶 int 參數的構造函數。當我們在 main
函數中創建 MyClass
對象時,根據傳遞給構造函數的參數數量和類型,將調用相應的構造函數。