成員變量-很差解釋,你們都懂就是成員變量
struct Person {
int age;
};
age 就是成員變量
複製代碼
構造函數(也叫構造器),在對象建立的時候自動調用,通常用於完成對象的初始化工做
複製代碼
struct Person {
int m_age;
};
// 全局區(成員變量初始化爲0)
Person g_person;
int main() {
// 棧空間(成員變量沒有初始化)
Person person;
// 堆空間
Person *p1 = new Person; // 成員變量沒有初始化
Person *p2 = new Person(); // 成員變量有初始化
cout << "g_person " << g_person.m_age << endl;
cout << "p1 " << p1->m_age << endl;
cout << "p2 " << p2->m_age << endl;
}
看下打印結果
g_person 0
p1 0
p2 0
能夠看出,成員的初始化後 m_age默認爲0
"看下有構造函數的成員初始化狀況"
struct Person {
int m_age;
Person() {
this->m_age = 3;
}
};
// 全局區(成員變量初始化爲0)
Person g_person;
int main() {
// 棧空間(成員變量沒有初始化)
Person person;
// 堆空間
Person *p1 = new Person; // 成員變量沒有初始化
Person *p2 = new Person(); // 成員變量有初始化
cout << "g_person " << g_person.m_age << endl;
cout << "p1 " << p1->m_age << endl;
cout << "p2 " << p2->m_age << endl;
}
打印結果:
g_person 3
p1 3
p2 3
能夠看出,成員的初始化後 m_age默認爲設置的值
複製代碼
若是自定義了構造函數,除了全局區,
其餘內存空間的成員變量默認都不會被初始化,須要開發人員手動初始化
複製代碼
完整代碼demo,請移步GitHub:DDGLearningCppgit
固然C++大神就繞吧,非喜勿噴,畢竟這是我的的學習筆記📒github