具體區別:
在說明這四個關鍵字之前,就class之間的關系做一個簡單的定義,對於繼承自己的class,base class可以認為他們都是自己的子女,而對於和自己一個目錄下的classes,認為都是自己的朋友。
1、public:public表明該數據成員、成員函數是對所有用戶開放的,所有用戶都可以直接進行調用
2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有財產神聖不可侵犯嘛,即便是子女,朋友,都不可以使用。
3、protected:protected對於子女、朋友來說,就是public的,可以自由使用,沒有任何限制,而對於其他的外部class,protected就變成private。
派生類可以訪問基類中所有的非私有成員。因此基類成員如果不想被派生類的成員函數訪問,則應在基類中聲明為 private。
我們可以根據訪問權限總結出不同的訪問類型,如下所示:
一個派生類繼承了所有基類的方法,但下列情況除外:
*基類的構造函數、析構函數和拷貝構造函數(可能是為了多繼承定義不出現沖突)
*除了賦值運算符重載函數以外,所有的運算符重載函數都可以被派生類繼承。 (原因:“賦
值運算符重載函數”不是不能被派生類繼承,而是被派生類的默認“賦值運算符重載函數”給
覆蓋了。這就是 C++賦值運算符重載函數不能被派生類繼承的真實原因! )
————————————————
版權聲明:本文為CSDN博主「spu20134823091」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/spu20134823091/article/details/53836192