構造函數(也叫構造器),寫移動端的常常用
複製代碼
構造函數(也叫構造器),在對象建立的時候自動調用,通常用於完成對象的初始化工做
複製代碼
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:DDGLearningCppgit
固然C++大神就繞吧,非喜勿噴,畢竟這是我的的學習筆記📒github