C 快速入門 虛繼承(21)

2021-08-31 03:36:54 字數 1296 閱讀 8217

c++快速入門---虛繼承(21)

通過虛繼承某個基類,就是在告訴編譯器,從當前這個類再派生出來的子類只能擁有那個基類的乙個例項。

虛繼承的語法:

class teacher : virtual public person

讓student類和teacher類都虛繼承自person類,編譯器將確保從student和teacher類再派生出來的子類只能擁有乙份person類的屬性。

**如下:

#include #include class person

;//虛繼承

class teacher : virtual public person

;//虛繼承

class student : virtual public person

;//助教

class teachingstudent : public student, public teacher

;person::person(std::string thename)

void person::introduce()

teacher::teacher(std::string thename, std::string theclass) : person(thename)

void teacher::teach()

void teacher::introduce()

student::student(std::string thename, std::string theclass) : person(thename)

void student::attendclass()

void student::introduce()

//因為teacher和student都是虛繼承,不能擁有person類的拷貝(備份),所以需要呼叫person的構造方法

teachingstudent::teachingstudent(std::string thename,

std::string classteaching,

std::string classattending)

: teacher(thename, classteaching),

student(thename, classattending),

person(thename)

void teachingstudent::introduce()

int main()

C 快速入門 9 繼承

如果我們希望某乙個類能直接使用另乙個類的屬性和方法,那麼這時候就可以用到繼承,那麼如果使用繼承呢?class a class b public a 這樣,我們就能在b中直接使用a中的屬性和方法了,但是值得注意的是,如果a類中的成員變數是private定義的,在b類中還是使用不了 在c 中我們可以使用...

C 虛繼承和虛繼承

虛繼承是在多繼承中為了解決衝突而技術。學術一點來說,是指乙個指定的基類,在繼承體系結構中,將其成員資料例項共享給也從這個基類直接或間接派生的其他類。虛繼承非常有用,可以避免多繼承的歧義和多重拷貝。考慮有如下繼承結構。b和c繼承a,d多繼承b c,我們看以下 class a class b publi...

C 入門經典 例8 8 虛繼承

1 以前講到從cbird類和cfish類派生子類cwaterbird時,在cwaterbird類中將存在兩個canimal類的複製。那麼如何在派生cwaterbird類時使其只存在乙個canimal基類呢?c 語言提供的虛繼承機制能夠解決這個問題。如下 8.8.cpp 定義控制台應用程式的入口點。i...