寫在前面
構(gòu)造函數(shù)(也叫構(gòu)造器),寫移動端的經(jīng)常用
名詞解釋
構(gòu)造函數(shù)(也叫構(gòu)造器),在對象創(chuàng)建的時候自動調(diào)用,一般用于完成對象的初始化工作
碼上建功
struct Person {
int m_age;
//初始化方法,不帶參數(shù)
Person() {
cout << "Person()" << endl;
// this->m_age = 0;
//memset函數(shù)是將較大的數(shù)據(jù)結(jié)構(gòu)(比如對象阶牍、數(shù)組等)內(nèi)存清零的比較快的方法
memset(this, 0, sizeof(Person));
}
//初始化喷面,帶參數(shù)
Person(int age) {
//此時不能用this.m_age訪問,因為this是指針類型
this->m_age = age;
cout << "Person(int age)"<< age << endl;
}
};
int main() {
// 椬吣酰空間
Person person1; // Person()
Person person2(); // 函數(shù)聲明惧辈,函數(shù)名叫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)
}
后面注釋寫明了調(diào)用哪一個初始化構(gòu)造器
打印結(jié)果
Person(int age)20
Person()
Person()
Person(int age)30
裝逼一下
函數(shù)名與類同名盒齿,無返回值(void都不能寫),可以有參數(shù)困食,可以重載边翁,可以有多個構(gòu)造函數(shù)
一旦自定義了構(gòu)造函數(shù),必須用其中一個自定義的構(gòu)造函數(shù)來初始化對象
通過malloc分配的對象不會調(diào)用構(gòu)造函數(shù)
完整代碼demo陷舅,請移步GitHub:DDGLearningCpp
當然C++大神就繞吧倒彰,非喜勿噴,畢竟這是個人的學習筆記??