- public 公共接口 :向外界開放,可通過對象或類名訪問
- protected 受保護的訪問:只向子類開放訪問權限 ,不可通過對象訪問
- private私有 :只有類成員可以訪問,外界不可以通過任何形式訪問
- public繼承:父類成員的訪問權限在子類中不變,仍爲自己原來的權限。
- protected繼承:父類的public成員訪問權限在子類中變爲protected;父類的protected成員和private成員在子類權限維持原來的權限不變
- private繼承:父類的所有成員訪問權限在 子類中變爲private
C++對象模型中,子類對象的內存空間中包含父類的部分,當用父類指針指向一個子類的對象實時,這個指針可以訪問的是相應的父類那部分的內存;在protected和private繼承的情況下,父類的內存部分是私有的,不對外開放的,所以,protected和private繼承時,不可以用父類的指針或引用指向子類對象。
通過對象訪問成員時,只能訪問到共有(Public)成員。
需要禁止類以構造形式實例化類的時候,可以將類的構造函數聲明爲private 和protected 的形式。構造函數聲明protected 的形式的類不能被直接實例化,但可以通過被繼承,子類可以在實例化的時候調用父類的protected構造函數。
構造函數聲明爲private的類的實例化不能依賴構造函數,可以提供public 的Instance()的方法,在Instance()定義中調用構造函數,返回類的實例。單例模式就是利用這個原理。