C++封裝的全部總結

類是對現實生活中一類具有共同特徵的事物的抽象
類是面向對象程序設計實現信息封裝的基礎。
類是一種用戶定義類型,也稱類類型
類的實例稱爲對象。
類的實質是一種數據類型

面向對象原則

以對象爲中心,以誰做什麼來表達程序的邏輯,對象的所以行爲都通過調用函數來實現

封裝

private : 只讀屬性,不可被外界修改
public :可被外界修改讀取

內聯函數

使用關鍵字inline定義,編譯時將函數體代碼和實參代替函數的調用語句,換句話說,省去了調用函數的過程,效率更高,速度更快,但那要求邏輯簡單,不可太複雜,若太過複雜,加上inline也沒有用

類內定義

整個函數都定義在類裏面
類內定義的成員函數,編譯器會將其優先編譯爲內聯函數,即簡單函數自動編譯爲內聯函數

類外定義

同文件類外定義

注意:關於變量名的定義m_+數據類型+名稱(更規範)

class Teacher {
    public:
        void setName(string _name);
        string getName();
        void setGender(string _gender);
        string getGender();
        void setAge(int _age);
        int getAge();
        void teach();
    private:
        string m_strName;
        string m_strGender;
        int m_iAge;
};
void Teacher::setName(string _name) {
    m_strName = _name;
}
string Teacher::getName() {
    return m_strName;
}
void Teacher::setGender(string _gender) {
    m_strGender = _gender;
}
string Teacher::getGender() {
    return m_strGender;
}
void Teacher::setAge(int _age) {
    m_iAge = _age;
}
int Teacher::getAge() {
    return m_iAge;
}
void Teacher::teach() {
    cout<<"Teach"<<endl;
}

構造函數

內存分區
棧區:int x = 0; int *p = NUll;
堆區:int *p = new int[20];
全局區:存儲全局變量即靜態變量
常量區:string str = “hello”;
代碼區:存儲邏輯代碼的二進制
構造函數在對象實例化時被自動調用
構造函數與類同名
構造函數沒有返回值
實例化對象時僅用一個構造函數
當用戶沒有定義構造函數時,編譯器自動生成一個構造函數

發佈了50 篇原創文章 · 獲贊 9 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章