建構函式的任務是初始化類物件的資料成員,無論何時只要類的物件被建立,就會執行建構函式。
一、建構函式注意
- 名字和類名相同。
- 沒有返回型別。
- 有一個(可以為控)的引數列表和一個(可以為空)的函式體。
- 可以過載。
- 不能被宣告為const。
- 當建立一個const物件時,知道建構函式完成初始化過程,物件才能取得常量屬性。
- 在物件例項化時編譯器自動呼叫。
二、預設建構函式
只有沒有顯式的定義建構函式時會提供一個預設的建構函式。
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)
{
}