類的定義
考點1 類的定義
C++語言的類是一種用戶自己定義的數據類型,和其他的數據類型不同的地方是組成這種類型的不僅可以有數據還可以有對數據進行操作的函數,它們分別叫做類的數據成員和類的函數成員。類是面向對象程序設計的核心,數據封裝就是通過類來實現的。 類是對一組性質相同對象的描述。類的定義形式一般分為說明部分和實現部分。說明部分是用來說明該類中的成員,實現部分是用來對成員函數的定義。類的一般定義形式為: class<類名> { private: <私有的數據和函數> public: <公有的數據和函數> protected: <保護的數據和函數> }; <各個成員函數的實現> 其中,類定義以關鍵字class開始,其后跟類名,類名必須是一個有效的C++標識符。 類所說明的內容用花括號括起來,右花括號后的分號的作用是類說明語句的結束標志!皗}”之間的內容稱為類體。關鍵字private,public和protected稱為訪問權限修飾符或訪問控制修飾符,它們用于限制類成員的控制訪問范圍,如果沒有使用多,則所有成員默認定義為private權限。這些關鍵字的聲明順序和次數都是任意的。<各個成員函數的實現>是類定義中的實現部分,這部分包含所有在類體內說明的成員函數的定義。各個成員函數的實體內類體內定義,又可以在類體外定義。如果一個成員函數在類體內定義,實現部分將不出現;如果所有的成員數都在類體內定義,則實現部分可以省略在類體內定義的成員函數都是內聯函數。
小提示: C++規定任何數據類型都必須先定義后使用,類也不例外。
考點2 類成員的訪問控制
類成員均具有一個屬性,叫做訪問控制權限。所以從訪問權限上來講,類的成員又分為私有的(private),公有的(public)和保護的( protected) 3類。公有成員定義了類的外部接口,只有公有成員才能被用戶程序直接訪問;私有成員定義了類的內部使用的數據和函數,私有成員只能被自己所屬類的成員函數及友元函數訪問;保護成員存取權限介于公有成員和私有成員之間,它在類的繼承和派生中使用。
小提示: 一個類可以沒有私有成員,但是不能沒有公有成員。
考點3 類的數據成員和類的函數成員
1.類的數據成員 數據成員是類的一個重要組成部分,它描述了對象的內部數據結構。類的數據成員是類的基礎,應該正確、完整地定義類的數據成員。定義類的數據成員應注意: (1)在類體中不允許對所定義的數據成員進行初始化。 (2)類中的數據成員的類型可以是任意的,包含整型、浮點型、字符型、數組、 指針和引用等,也可以是對象。另一個類的對象可以作為該類的成員,但是自身類的對象是不可以的,而自身類的指針或引用則是可以的。當一個類的對象作為這個類的成員時,如果另一個類的定義在后,則需要提前說明。 2.類的函數成員 函數成員實現對類中數據成員的操作,它描述了類的行為。由于對象的封裝性,類的函數成員是對類的私有數據成員進行操作的惟一途徑。類中所有的函數成員都必須在類體中說明,但函數成員的定義既可在類體內,也可在類體外。 (1)在類體內直接給出函數的定義。例如,下面是在類體內給出類成員函數實現的例子: class Shijian{ private: int Shi,Fen,Miao; public: void Set(int S, int F, int M)//可省略此成員函數的變量標識符 {Shi=S; Fen=F; Miao=M;} void Display(){ cout<<"現在時間是:"; cout< } }; (2)在類體外給出函數的定義。定義形式如下: <返回類型><類名>::<成員函數名>(<參數表>) {<成員函數體>} 成員函數定義的結構與普通函數不同之處是在返回類型和函數名之間加了一個類名和雙冒號“::”。::是作用域運算符,用來標識成員函數或數據成員是屬于哪個類的實理成員函數時參數表中的形參變量標識符可以省略。例如,實現上例中的成員函數Diaplay(): void Shijian::Disptay() {cout<<"現在時間是:"; cout< 另外,類成員函數同普通函數一樣,也可以進行重載及其默認參數。
小提示: 類的每個成員函數在說明中最后的分號不可省略,但在類體內實現時省略分號。
|