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:DDGLearningCppgit

固然C++大神就繞吧,非喜勿噴,畢竟這是我的的學習筆記📒github

相關文章
相關標籤/搜索