問題:我們經常擴充套件別人寫好乙個類的功能,為了防止別人錯誤地使用我們擴充套件的功能,我們需要遮蔽直接呼叫原基類的功能。例如:
class
base
void
add(base* pbase){}
void
remove(base* pbase){} };
//我們擴充套件base
的add, remove功能,在這兩個函式裡需要處理一些derive內部自己的資料。若使用者直接呼叫add, remove。derive的一些內部資料得不到處理,則可能會導致其他的呼叫會出錯。解決方法有兩種。 1
)私有派生,將直接可以呼叫函式公有化。
class
derive: private
base
void
removeex(base* pbase){} };
2)公有派生,將不能直接呼叫的函式私有化。
class
derive: public
base
void
removeex(base* pbase){} };
void
call()
繼承類對基類成員的訪問許可權
繼承是事物發展的過程,通過繼承使得後代繼承了父輩的優秀屬性並進一步 拓展出新的屬性和能力。c 中的繼承就是現有的類中建立乙個新的類,現有的類成為基類,繼承出來的新類稱為派生類,可以簡單的理解為 基類為父親,派生類為兒子。繼承的方式有三種,分別是 公有繼承 public 私有繼承 private 保護...
類訪問許可權
包訪問許可權類,預設情況 只有在myclass包內的類才有許可權引用accesstype類 package myclass class accesstype void fun 例1 import myclass.accesstype public class referother 本類 包外部類 在...
c 繼承方式及對基類的訪問許可權
公有繼承,私有繼承和保護繼承三種。繼承方式 基類屬性 public protected private 公有繼承 public public protected 不可見保護繼承 protected protected protected 不可見私有繼承 private private private...