c++作為物件導向的語言,類之間可以繼承,被繼承的類稱為基類(父類),產生的新類稱為派生類(子類)。
c++的類許可權分為三個等級,private(私有的),protect(被保護的),public(公有的)。其相對應的繼承的許可權也分為相同的三個等級,即private,protect以及public繼承。
這三類繼承抽象自現實社會的財產繼承:
private繼承可視為吝嗇鬼的繼承,將所有繼承下來的資源都據為己有,不容外人的窺探,而他本人繼承的財產也需遵守父輩的許可權。這種繼承而來的類所有成員變數和成員函式都變成私有的,外部無法對其呼叫,只能在類內部通過成員函式呼叫,其成員函式的呼叫許可權則繼承於它的基類,如下方**所示,m_name,m_age,m_***三個成員變數在基類(父類)中分別屬於private,protect以及public許可權,則在派生類(子類),其許可權也與基類(父類)相同,m_name屬於父類的私有變數,雖然子類繼承時包含它,卻在子類內部無法被呼叫。m_age,m_***作為protect和public變數,可以在子類內部被呼叫。同樣的,在此派生類作為基類被再次繼承的時候,它的派生類將遵循此類的許可權設定,即所有成員變數都為私有的,只可被繼承,不能被呼叫。
protect繼承可視為家族式的繼承,將除了父輩私有資源之外的資源都變為可傳承的資源,同樣不容外人的窺探。這種繼承而來的類成員變數和成員函式外部同樣無法對其呼叫,只能在類內部通過成員函式呼叫,其成員函式的呼叫許可權也同樣繼承於它的基類。在類的內部,其呼叫與private繼承類似,不同的是在此派生類作為基類繼承時,其public和protected許可權的成員變數都變為protected成員變數被繼承,其子類僅可在子類內部呼叫。
public繼承可視為抄襲式的繼承,其繼承的所有資源與父輩的許可權相同,這種繼承而來的類成員變數和成員函式,public許可權下的成員變數和成員函式可通過外部呼叫。在類的內部,其呼叫與protected繼承相同。在此派生類作為基類繼承時,其public成員變數及函式被繼承時仍舊是public許可權。
#include #include using namespace std;
class people
;class student:public people
;void student::set1(string n,int a,string ***)
void student::print1()
class student1:protected people
;void student1::set1(string n,int a,string ***)
void student1::print1()
class student2:private people
;void student2::set1(string n,int a,string ***)
void student2::print1()
int main()
c 繼承的相關知識點
導航 1.繼承的基礎語法 2.繼承的方式 成員屬性及成員函式 3.子類繼承父類時,建構函式及析構函式的順序 4.繼承同名的成員關係,如何訪問 5.訪問同名靜態成員 6.多繼承語法 7.菱形繼承 繼承的基礎語法 當我們寫類的時候,如果每個類都有相同的部分,那麼通過乙個個將其中的內容乙個個敲出來將會十分...
c 相關知識點
類繼承 基類指標與引用可以隱示的指向派生類的物件,但只能使用基類的函式。多型屬於豎向函式過載,派生類函式的名與基類函式得名一樣,但在呼叫多態函式時有些區別,如果該函式是通過引用或者指標而不是物件呼叫的,如果這個函式在多型過程中沒有使用關鍵字virtual那麼程式將根據引用或者指標選擇實現方法。如果函...
C 中繼承的相關知識點總結
1.oop中的乙個重要概念就是繼承,它允許程式從已有類派生出新類。新類自動繼承已有類的資料成員與成員函式 2.派生類不會繼承建構函式 拷貝建構函式 析構函式或其他過載的賦值運算子 3.在例項化派生類物件時,基類建構函式在派生類構造函式呼叫之前自動呼叫 4.在銷毀派生類物件時,基類析構函式在派生類析構...