八:類的封裝

類通常分爲以下兩個部分
類的使用方式
當使用類時,不需要關心其實現細節
當創建一個類時,才需要考慮其內部實現細節
例:使用手機時,只需要知道如何發短信,打電話,拍照等待即可,不需要關心手機是如何開發出來的。
手機開發工程師就需要考慮手機的內部實現細節,如硬件細節和軟件細節


封裝的基本概念
根據日常生活中的經驗:並不是類的每個屬性都是對外公開的
屬性如:女孩子不希望外人知道自己的年齡和身高
行爲如:一些男孩子不希望別人知道自己會尿牀
而一些類的屬性是對外公開的
如:人類的姓名,學歷,國籍等
因此,需要在類的表示法中定義屬性和行爲的公開級別
類似文件系統中文件的權限


C++中類的封裝
成員變量
C++中用於表示類屬性的變量
成員函數
C++中用於表示類的行爲的函數
在C++中可以給成員變量和成員函數定義訪問級別
public
成員變量和成員函數可以在類的內部和外界訪問和調用
private
成員變量和成員函數可以在類的內部訪問和調用


此處有Example8-1.CPP


類成員的作用域
類成員的作用域都只能在類的內部,外部無法直接訪問
成員函數可以直接訪問成員函數和調用其他成員函數
類的外部可以通過類變量訪問public成員
類成員的作用域與訪問級別沒有關係。
(C++中用struct定義的類的所有成員默認爲public)


類的真正形態
struct在C語言中已經有了自己的含義,只能繼續兼容
在C++中提供了新的關鍵字class用於定義類
class和struct的用法是完全相同的


class和struct有什麼區別?
在struct定義類時,所有成員默認屬性爲public
在用class定義時,所有成員的默認屬性都是private


類的精華在於封裝
  將實現細節和使用方式分離
C++中童工public和private實現類的封裝
  public成員可以通過變量被外界訪問
  private成員只能夠在類的內部使用
類的定義和實現可以分開到不同的文件中 

發佈了48 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章