/*
* inheritclass.cpp
* * created on: 2023年7月18日
* author: zroad
*/#include
#include
using
namespace
std;
class baseclass
void f(char *s = "unkown")
protected:
void g(char *s = "unkown")
private:
void h()
};//一、繼承定義中的基類限定訪問符:
//public:基類中的public、protected、private按照原訪問規則
//protected:基類中的pulic訪問許可權限制為protected
//private:基類中的public、protected訪問許可權全部限制為private
class derived1level1 : public
virtual baseclass
//二、派生類可重寫基類方法,並擴充套件新的成員函式或是成員變數
void h(char *s = "unknow")
};//三、虛繼承的定義使得多繼承中重複定義的成員僅只呼叫一次
/* 在多繼承下,虛繼承就是為了解決菱形繼承中,b,c都繼承了a,d繼承了b,c,那麼d關於 a的引用只有一次,而不是 普通繼承的 對於a引用了兩次……
格式:可以採用public、protected、private三種不同的繼承關鍵字進行修飾,只要確保包含virtual就可以了。
*/class derived2level1 : public
virtual baseclass
};class derived2level2 : public derived1level1, public derived2level1
};int main()
多重繼承 虛繼承與虛基類
一 多重繼承 單重繼承 乙個派生類最多只能有乙個基類 多重繼承 乙個派生類可以有多個基類 class 類名 繼承方式 基類1,繼承方式 基類2,派生類同時繼承多個基類的成員,更好的軟體重用 可能會有大量的二義性,多個基類中可能包含同名變數或函式 多重繼承中解決訪問歧義的方法 基類名 資料成員名 或成...
virtual public 虛繼承類
對於c 來說,類是必須要接觸的,現在有一種很莫名的感覺 就是當你接觸類後才能說自己開始逐步得到了c 的技能。下面我們談一談類的過載這個問題。在類過載中我們一般使用以下的方式 class grandfather class father public base class child public m...
C 13 多重繼承 菱形繼承 ,虛繼承,虛基類
就是乙個派生類多個基類,幾乎與單繼承是一致的。唯一考點 菱形繼承結構 b類c類繼承a類,d類繼承a類。產生問題,派生類有多份基類的資料。解決辦法 b c都採用虛繼承,只有乙個虛繼承也無法解決該問題。虛繼承 厲害了,virtual不僅可以宣告虛函式,還可以設定繼承方式 虛繼承 被採用虛繼承的基類 a,...