小甲魚 C 快速入門筆記 28 之多繼承

2021-10-14 14:12:29 字數 1380 閱讀 7256

www.fishc.com

什麼時候需要用到多繼承呢?

----只要你遇到的問題無法只用乙個「是乙個」關係來描述的時候,就是多繼承出場的時候。

----舉個例子:在學校裡有老師和學生,他們都是人(person),我們可以用「老師是人」和「學生是人」語法來描述這種情況。

----從物件導向程式設計角度上來看,我們應該建立乙個名為person的基類和兩個名為teacher和student的子類,後兩者是從前者繼承來的。

問題來了:有一部分學生還教課掙錢(助教),該怎麼辦?這樣就存在了既是老師又是學生的複雜關係,也就是同時存在著兩個「是乙個」的關係。

我們需要寫乙個teachingstudent類讓它同時繼承teacher類和student類,換句話說,就是需要使用多繼承。

基本語法:

class teachingstudent:public student,public teacher

例子:要求:建立乙個由person, teacher, student和teachingstudent構成的類層次結構.

#include #include using namespace std;

class person;

class teacher:public person;

class student:public person;

class teachingstudent:public student, public teacher;

person::person(string thename)

void person::introduce()

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

void teacher::teach()

void teacher::introduce()

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

void student::attendclass()

void student::introduce()

teachingstudent::teachingstudent(string thename,

string classteaching,

string classattending)

:teacher(thename, classteaching),

student(thename, classattending)

void teachingstudent::introduce()

int main()

c 小甲魚C 快速入門 一

輸入一串整數和任意數目的空格,計算整數的和 includeint main printf 結果是 d sum return 0 cin.peek cin.get includeusing namespace std int main if cin.peek n break cout 用法一 cin....

小甲魚 C 快速入門筆記 46 之類模板

函式模板需要注意的地方 1 在建立模板時,還可以用template 來代替template 它們的含義是一樣的.而且template 中的class並不意味著t只能是乙個類.此外,不要把函式模板分成原型和實現兩個部分.2 為了明確表明swap 是乙個函式模板,還可以使用swap i1,i2 語法來呼...

小甲魚 C 快速入門筆記 45 之類模板

www.fishc.com 函式模板需要注意的地方 1 在建立模板時,還可以用template 來代替template 它們的含義是一樣的.而且template 中的class並不意味著t只能是乙個類.此外,不要把函式模板分成原型和實現兩個部分.2 為了明確表明swap 是乙個函式模板,還可以使用s...