寫在前面
建構函式(也叫構造器),寫移動端的經常用
複製程式碼
名詞解釋
建構函式(也叫構造器),在物件建立的時候自動呼叫,一般用於完成物件的初始化工作
複製程式碼
碼上建功
struct Person {
int m_age;
//初始化方法,不帶引數
Person() {
cout << "Person()" << endl;
// this->m_age = 0;
//memset函式是將較大的資料結構(比如物件、陣列等)記憶體清零的比較快的方法
memset(this, 0, sizeof(Person));
}
//初始化,帶引數
Person(int age) {
//此時不能用this.m_age訪問,因為this是指標型別
this->m_age = age;
cout << "Person(int age)"<< age << endl;
}
};
int main() {
// 棧空間
Person person1; // Person()
Person person2(); // 函式宣告,函式名叫person2,無參,返回值型別是Person
Person person3(20); // Person(int age)
// 堆空間
Person *p1 = new Person; // Person()
Person *p2 = new Person(); // Person()
Person *p3 = new Person(30); // Person(int age)
}
後面註釋寫明瞭呼叫哪一個初始化構造器
列印結果
Person(int age)20
Person()
Person()
Person(int age)30
複製程式碼
裝逼一下
函式名與類同名,無返回值(void都不能寫),可以有引數,可以過載,可以有多個建構函式
一旦自定義了建構函式,必須用其中一個自定義的建構函式來初始化物件
通過malloc分配的物件不會呼叫建構函式
複製程式碼
完整程式碼demo,請移步GitHub:DDGLearningCpp
當然C++大神就繞吧,非喜勿噴,畢竟這是個人的學習筆記?