在現實世界中,經常有屬於同一類的對象。例如,你的自行車只是世界上很多自行車中的一輛。在面向對象軟件中,也有很多共享相同特征的不同的對象:矩形、雇用記錄、視頻剪輯等。可以利用這些對象的相同特征為它們建立一個集合。而這個集合就稱為類。類是定義同一類所有對象的變量和方法的藍圖或原型。例如,可以建立一個定義包含當前檔位等實例變量的自行車類。這個類也定義和提供了實例方法(變檔、剎車)的實現。實例變量的值由類的每個實例提供。因此,當你創建自行車類以後,必須在使用之前對它進行實例化。當創建類的實例時,就建立了這種類型的一個對象,然後系統為類定義的實例變量分配內存。然後可以調用對象的實例方法實現一些功能。相同類的實例共享相同的實例方法。 除了實例變量和方法,類也可以定義類變量和類方法。可以從類的實例中或者直接從類中訪問類變量和方法。類方法只能操作類變量 - 不必訪問實例變量或實例方法。系統在第一次在程序中遇到一個類時為這個類建立它的所有類變量的拷貝 - 這個類的所有實例共享它的類變量。
接下來,看看代碼,舉一個簡單的案例:
1、
#include執行結果:a:100using namespace std ; //定義HotDog類 //注意:類沒有空間 class HotDog { //私有成員 private: //只有本身成員方法可以訪問或者友員函數可以訪問 int age ; //成員變量 int bbb ; //公有成員 public: //成員方法 成員函數 //static void say_hello(void) static void say_hello(void) { int a ; int b ; cout << "hello HotDog" << endl ; } //一般情況只要是私有成員都需有get set 操作方法 void Set_Age(int age) { this->age = age ; } int Get_Age(void) { return this->age ; } //聲明某個函數為該類的友員函數 friend int main(void) ; //受保護成員 protected: }; int main(void) { class HotDog Dog ; Dog.age = 100 ; cout << "age : " << Dog.age << endl ; // Dog.Set_Age(100); // // cout << "age : " << Dog.Get_Age() << endl ; //除非操作方法被聲明為static才可以用類名直接調用 HotDog::say_hello(); return 0 ; }
hello HotDog