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”;
代碼區:存儲邏輯代碼的二進制
構造函數在對象實例化時被自動調用
構造函數與類同名
構造函數沒有返回值
實例化對象時僅用一個構造函數
當用戶沒有定義構造函數時,編譯器自動生成一個構造函數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM