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...