11-構造函數

寫在前面

構造函數(也叫構造器),寫移動端的經常用

名詞解釋

構造函數(也叫構造器),在對象創建的時候自動調用,一般用於完成對象的初始化工作

碼上建功

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++大神就繞吧,非喜勿噴,畢竟這是個人的學習筆記📒

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章