一,多繼承
#include
#include
using namespace std;
class b1
;//繼承類c
void main()
//主函式
c類按照順序繼承b2,b1,b4,b3;再按照資料成員定義順序:memberb1, memberb4, memberb3,memberb2;最後是自己的構造器
二,虛繼承
#include
#include
using
namespace
std;
class person
void introduce();
teacher::teacher(string thename,string theclass):person(thename)//建構函式的繼承(含引數)
student::student(string thename,string theclass):person(thename)
teachingstudent::teachingstudent(string thename,
string classteaching,
string classattending)
:teacher(thename,classteaching),student(thename,classattending),person(thename)//teacher和student虛繼承於person,所以他們的子類teachingstudent不繼承於person
如果不是虛繼承,則teachingstudent類將擁有2個name,
void teachingstudent::introduce()
C 多繼承 菱形繼承 虛繼承
b和c都單繼承了a d繼承了b和c 是多繼承 有兩個或兩個以上的基類就是多繼承 class a public int ma class b public a public int mb class c public a public int mc class d public b,public c ...
C 多繼承與虛繼承
目錄 多繼承與虛繼承以及存在的問題 例子 虛繼承有了多繼承,虛繼承才會有意義 如果有個菱形結構的繼承,爺爺類為a,然後b,c是a的派生類,最後d是b和c的派生類,如果在a中有乙個成員變數a,d去呼叫就會出現訪問不明確,虛繼承就可以解決訪問不明確的這種問題 如果這樣繼承b,c虛繼承了a,virtual...
c 多繼承和虛繼承
一 關於多繼承 菱形繼承 指的是b繼承a,c繼承a,d繼承b和c。下圖是菱形繼承的過程,以及各類的簡單的記憶體布局。菱形繼承存在的問題 間接基類的資料會出現多份導致訪問出錯,並且存在記憶體浪費 我們可以利用虛繼承來解決這一問題。二 虛繼承 虛繼承是物件導向程式設計中的一種技術,是指乙個指定的基類,在...