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