1蔑祟、public:public表明該數(shù)據(jù)成員、成員函數(shù)是對所有用戶開放的沉唠,所有用戶都可以直接進行調(diào)用疆虚。
2、private:private表示私有满葛,私有的意思就是除了class自己之外径簿,任何人都不可以直接使用。
3纱扭、protected:protected對于子女牍帚、朋友來說,就是public的乳蛾,可以自由使用暗赶,沒有任何限制鄙币,而對于其他的外部class,protected就變成private蹂随。
三種類型的繼承十嘿,父類的成員均被子類繼承,只是由類實例化的對象對其繼承的成員的訪問權限會有所變化岳锁。三種不同方式的繼承绩衷,描述的是子類實例化對象對其成員的訪問權限,并非是描述子類時激率,子類對繼承自父類的成員的訪問權限咳燕。
公有繼承????繼承自父類的成員保持不變。
私有繼承????繼承自父類的成員全部變?yōu)樗接谐蓡T乒躺。
保護繼承????繼承自父類的公有成員變?yōu)楸Wo成員招盲,其余不變。
在說明這四個關鍵字之前嘉冒,我想就class之間的關系做一個簡單的定義曹货,對于繼承自己的class,base class可以認為他們都是自己的子女讳推,而對于和自己一個目錄下的classes顶籽,認為都是自己的朋友。派生類可以訪問基類中所有的非私有成員银觅。因此基類成員如果不想被派生類的成員函數(shù)訪問礼饱,則應在基類中聲明為 private。
1.首先是public修飾符來修飾的函數(shù)设拟,是指這個函數(shù)可以被其他的類來調(diào)用慨仿,也可以被自己類里的函數(shù)來調(diào)用。
2.再看protected修飾符來修飾的函數(shù)纳胧,是指這個函數(shù)可以被繼承類調(diào)用镰吆,也可以被自己類里的函數(shù)調(diào)用,但不能被其他的類調(diào)用跑慕。
3.用private修飾符來修飾的函數(shù)万皿,就具有更少的權限了,只能被自己類里的其他函數(shù)調(diào)用核行,其他的一概不能調(diào)用牢硅。
一個派生類繼承了所有基類的方法,但下列情況除外:
1.基類的構(gòu)造函數(shù)芝雪、析構(gòu)函數(shù)和拷貝構(gòu)造函數(shù)(可能是為了多繼承定義不出現(xiàn)沖突)
2.除了賦值運算符重載函數(shù)以外减余,所有的運算符重載函數(shù)都可以被派生類繼承。 (原因:“賦值運算符重載函數(shù)”不是不能被派生類繼承惩系,而是被派生類的默認“賦值運算符重載函數(shù)”給覆蓋了位岔。這就是 C++賦值運算符重載函數(shù)不能被派生類繼承的真實原因如筛! ) 。
3.基類的友元函數(shù)(父親的朋友不一定是你的朋友)