08-類

東閣堂主發表於2019-02-09

寫在前面

物以類聚,人以群分--這樣就引出了類的概念

複製程式碼

名詞解釋

類定義是以關鍵字 class 開頭,後跟類的名稱。
類的主體是包含在一對花括號中。類定義後必須跟著一個分號或一個宣告列表
複製程式碼

碼上建功 --類


//定義一個Student類
class Student {
//訪問許可權,類的訪問許可權預設只能在類的內部。
public:
    //定義屬性
    int no;
    //定義無返回值的方法
    void study() {
        cout << "study() - no is " << no << endl;
    }
};

對,建立一個類就是這麼簡單

'如何使用'
//初始化--是不是很簡單,因為這是最簡單的,沒有構造器的初始化方法 Student student;
//屬性訪問與賦值
student.no = 100;
student.study();
//當然你也可以用指標這樣訪問
Student *pStudent = &student;
pStudent->no = 150;
pStudent->study();
列印結果:
study() - no is 100
study() - no is 150

上面程式碼中person物件、pPerson指標的記憶體都是在函式的棧空間,自動分配和回收的
"奉上訪問許可權說明符"
/**
 private,public,protected方法的訪問範圍.(public繼承下)
 private: 只能由該類中的函式、其友元函式訪問,不能被任何其他訪問,該類的物件也不能訪問.
 protected: 可以被該類中的函式、子類的函式、以及其友元函式訪問,但不能被該類的物件訪問
 public: 可以被該類中的函式、子類的函式、其友元函式訪問,也可以由該類的物件訪問
 注:友元函式包括兩種:設為友元的全域性函式,設為友元類中的成員函式
 */
複製程式碼

碼上建功 --結構體

//定義一個Worker結構體
struct Worker {
    //定義屬性
    int age;
    //定義無返回值的方法
    void work() {
        cout << "work() - age is " << age << endl;
    }
};

Worker worker;
worker.age = 20; //可以直接訪問,預設修飾的屬性是public
worker.work();
執行結果:
work() - age is 20
複製程式碼

裝逼一下

A類(基類)	B類(A的派生類)	C類(B的派生類)
公有繼承	公有成員	公有成員	公有成員
私有成員	(無)	(無)
保護成員	保護成員	保護成員
私有繼承	公有成員	私有成員	(無)
私有成員	(無)	(無)
保護成員	私有成員	(無)
保護繼承	公有成員	保護成員	保護成員
私有成員	(無)	(無)
保護成員	保護成員	保護成員
 
複製程式碼

完整程式碼demo,請移步GitHub:DDGLearningCpp

當然C++大神就繞吧,非喜勿噴,畢竟這是個人的學習筆記?

相關文章