c++語言可以看成是c語言的擴充套件和改進,相對於c語言,c++語言主要是增添了物件導向的特性。類(class)則是c++物件導向程式設計的實現方式。
無論是何種程式語言,進行物件導向程式設計都將是從類的設計開始的。什麼是類呢?其實很簡單,我們可以理解為一種使用者自定義的資料型別,類似於c語言裡面的結構體(struct),在本章最後我們將對比類和結構體之間的異同。
首先我們來了解一下類的宣告,先來看乙個例子。
[例1] 乙個最簡單的類宣告:
class student ;在例1中建立了乙個student類,可以在該類中宣告student類的成員變數和成員函式,用於描述student的各方面特性,例如姓名、學號、年齡等資訊。
在例1中class是c++關鍵字,也是用於類宣告的關鍵字。緊接class關鍵字之後的是我們自定義的類名student。
例1中的類定義我們可以理解為我們定義了一種新的資料型別,該資料型別的識別符號為student(這個類似於int是c++中整形的識別符號)。
特別要注意的一點是,在類宣告結束處右括號「}」後面右乙個分號「;」,這個分號一定不能忘記,它是類宣告的一部分。如果漏掉則會在程式編譯不通過。
宣告了student資料型別之後,我們就可以用其定義變數了,如:
student lilei; //建立物件在這一條語句中就利用student資料型別宣告了乙個lilei的變數,這和
int a; //定義整形變數語句定義了乙個整型變數表達的意思是類似的。而lilei這個變數我們稱之為student類的物件。
在用類定義物件的時候,一定要先給出類宣告,這就好比用某種自定義資料型別來定義變數的時候,我們必須要先給出該資料型別的宣告一樣。由於c++裡面本身整合一些常用資料型別,如int、bool、double等,所以在用這些資料型別宣告變數時不需要再由我們自己給出型別宣告了。
在定義類的物件時,class關鍵字可要可不要,如例2所示,但通常出於習慣我們通常都會省略掉class關鍵字。
[例2] class關鍵字可要可不要:
class student lilei; //正確 student lilei; //同樣正確定義類物件時,除了能定義單個變數以外,用類定義乙個陣列或者指標都是可行的。
[例3] 定義物件陣列或指標:
student all_student[1000]; student * pointer;在例3中,我們定義了乙個all_student陣列,該資料擁有1000個元素,每乙個元素都是student型別。此外,我們定義了乙個student型別的指標pointer,該指標可以指向student型別的變數,其用法跟普通指標是一樣的。
定義和宣告
定義 什麼是定義?所謂的定義就是 編譯器 創造乙個物件,為這個物件分配一塊記憶體並給它取上乙個名字,這個名字就是我們常常說的定義名或物件名。但注意,這個名字一旦和這塊記憶體匹配起來 可以想象是這個名字嫁給了這塊空間,沒有要彩禮啊 它們就生死與共,終生不離不棄,並且這塊內 存的位置也不能被改變。乙個變...
c 中的定義和宣告
在c 中,定義和宣告時兩個不同的概念。宣告表示告訴編譯器,有某個函式或者變數,可以再某處找到。而定義表示在 這裡建立函式或者在這裡建立變數 即會分配儲存空間。在c 裡面,用extern關鍵字來表示宣告,它表示 這只是乙個宣告,函式或者變數在檔案以外定義或者檔案後面定義 並且函式和變數的宣告有些不一樣...
C Primer學習 類 類的定義和宣告
在c 中,用類定義抽象資料型別。一 類定義 簡單來說,類就是定義了乙個新的型別和乙個新的作用域。1.類成員 訪問標號 public定義的成員可以被使用該型別的所有 訪問。private定義的成員可以被其他類成員訪問。2.建構函式 建立乙個類物件時,編譯器會自動使用乙個建構函式初始化該物件。建構函式一...