亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 第10章 類的繼承與組合.txt

?? C C++ JAVA等軟件方面的面試題目
?? TXT
字號:


對象(Object)是類(Class)的一個實例(Instance)。如果將對象比作房子,那么類就是房子的設計圖紙。所以面向對象設計的重點是類的設計,而不是對象的設計。 
對于C++程序而言,設計孤立的類是比較容易的,難的是正確設計基類及其派生類。本章僅僅論述“繼承”(Inheritance)和“組合”(Composition)的概念。

注意,當前面向對象技術的應用熱點是COM和CORBA,這些內容超出了C++教材的范疇,請閱讀COM和CORBA相關論著。

10.1 繼承
如果A是基類,B是A的派生類,那么B將繼承A的數據和函數。例如:

class A

{

public:

void Func1(void);

void Func2(void);

};


class B : public A

{

public:

void Func3(void);

void Func4(void);

};


main()

{

B b; 

b.Func1(); // B從A繼承了函數Func1

b.Func2(); // B從A繼承了函數Func2

b.Func3();

b.Func4();

}


這個簡單的示例程序說明了一個事實:C++的“繼承”特性可以提高程序的可復用性。正因為“繼承”太有用、太容易用,才要防止亂用“繼承”。我們應當給“繼承”立一些使用規則。


l 【規則10-1-1】如果類A和類B毫不相關,不可以為了使B的功能更多些而讓B繼承A的功能和屬性。不要覺得“白吃白不吃”,讓一個好端端的健壯青年無緣無故地吃人參補身體。

l 【規則10-1-2】若在邏輯上B是A的“一種”(a kind of ),則允許B繼承A的功能和屬性。例如男人(Man)是人(Human)的一種,男孩(Boy)是男人的一種。那么類Man可以從類Human派生,類Boy可以從類Man派生。

class Human

{


};

class Man : public Human

{


};

class Boy : public Man

{


};


u 注意事項

【規則10-1-2】看起來很簡單,但是實際應用時可能會有意外,繼承的概念在程序世界與現實世界并不完全相同。

例如從生物學角度講,鴕鳥(Ostrich)是鳥(Bird)的一種,按理說類Ostrich應該可以從類Bird派生。但是鴕鳥不能飛,那么Ostrich::Fly是什么東西?

class Bird

{

public: 

virtual void Fly(void);


};


class Ostrich : public Bird

{


};


例如從數學角度講,圓(Circle)是一種特殊的橢圓(Ellipse),按理說類Circle應該可以從類Ellipse派生。但是橢圓有長軸和短軸,如果圓繼承了橢圓的長軸和短軸,豈非畫蛇添足?

所以更加嚴格的繼承規則應當是:若在邏輯上B是A的“一種”,并且A的所有功能和屬性對B而言都有意義,則允許B繼承A的功能和屬性。

10.2 組合
l 【規則10-2-1】若在邏輯上A是B的“一部分”(a part of),則不允許B從A派生,而是要用A和其它東西組合出B。

例如眼(Eye)、鼻(Nose)、口(Mouth)、耳(Ear)是頭(Head)的一部分,所以類Head應該由類Eye、Nose、Mouth、Ear組合而成,不是派生而成。如示例10-2-1所示。


class Eye

{
public:

void Look(void); 

};
class Nose

{
public:

void Smell(void); 

};

class Mouth

{
public:

void Eat(void); 

};
class Ear

{
public:

void Listen(void); 

};

// 正確的設計,雖然代碼冗長。 

class Head

{

public:

void Look(void) { m_eye.Look(); }

void Smell(void) { m_nose.Smell(); }

void Eat(void) { m_mouth.Eat(); }

void Listen(void) { m_ear.Listen(); }

private:

Eye m_eye;

Nose m_nose;

Mouth m_mouth;

Ear m_ear;

};


示例10-2-1 Head由Eye、Nose、Mouth、Ear組合而成


如果允許Head從Eye、Nose、Mouth、Ear派生而成,那么Head將自動具有Look、 Smell、Eat、Listen這些功能。示例10-2-2十分簡短并且運行正確,但是這種設計方法卻是不對的。


// 功能正確并且代碼簡潔,但是設計方法不對。

class Head : public Eye, public Nose, public Mouth, public Ear

{

};


示例10-2-2 Head從Eye、Nose、Mouth、Ear派生而成


一只公雞使勁地追打一只剛下了蛋的母雞,你知道為什么嗎?

因為母雞下了鴨蛋。

很多程序員經不起“繼承”的誘惑而犯下設計錯誤?!斑\行正確”的程序不見得是高質量的程序,此處就是一個例證。




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩www| 欧美国产日韩亚洲一区| 91国产丝袜在线播放| av午夜精品一区二区三区| 成人三级伦理片| 91一区一区三区| 日韩欧美在线影院| 精品久久人人做人人爱| 中文av一区二区| 亚洲成人动漫av| 国内久久精品视频| 成人午夜精品在线| 国产精选一区二区三区| 亚洲一二三四区不卡| 美女视频一区二区| 在线观看国产91| 极品尤物av久久免费看| 成人欧美一区二区三区视频网页| 91蝌蚪porny| 99久久精品国产精品久久| av成人老司机| 91麻豆精东视频| 91福利社在线观看| 91精品一区二区三区在线观看| 91精品国产欧美一区二区18 | 国产精品福利一区二区三区| 国产精品久久久久久久久免费相片 | 亚洲欧美日韩一区| 亚洲第一av色| 国产精品一区二区在线播放 | 3atv在线一区二区三区| 欧美精品一区二区三区久久久| 国产欧美日韩不卡免费| 亚洲狠狠丁香婷婷综合久久久| 午夜久久电影网| 国产精品99久久久久| 在线免费观看一区| 久久女同性恋中文字幕| 一区二区在线电影| 国产乱人伦偷精品视频免下载| 色诱视频网站一区| 久久综合狠狠综合久久激情| 一区二区三区 在线观看视频 | 久久婷婷色综合| 一区二区三区在线免费视频| 韩国午夜理伦三级不卡影院| 色狠狠桃花综合| 久久久久久久久蜜桃| 日韩影院精彩在线| 91麻豆国产香蕉久久精品| 久久综合九色综合97婷婷 | 欧美一二区视频| 亚洲精品视频在线看| 国产精品夜夜嗨| 91精品国产麻豆国产自产在线 | 91精品国产高清一区二区三区| 国产欧美1区2区3区| 美女国产一区二区| 欧美日韩精品电影| 亚洲日本青草视频在线怡红院| 国产精华液一区二区三区| 欧美一级欧美三级| 亚洲成人黄色影院| 色综合久久综合| 1区2区3区欧美| 成人午夜电影网站| 国产欧美一区二区精品性色超碰| 蜜臀va亚洲va欧美va天堂 | 中文一区二区在线观看| 激情文学综合插| 精品福利av导航| 国产在线一区观看| 精品国产乱码久久久久久图片 | 国产精品久久久久久久久免费桃花 | 精品一区二区三区在线观看| 欧美日韩国产不卡| 亚洲国产成人精品视频| 欧美日韩国产中文| 日韩av不卡一区二区| 91精品综合久久久久久| 日本va欧美va精品发布| 日韩午夜激情电影| 精品一区二区三区在线观看| 久久综合九色综合欧美就去吻| 国产在线麻豆精品观看| 亚洲国产精品成人综合| 不卡的av网站| 一区二区三区免费| 欧美麻豆精品久久久久久| 日日夜夜精品视频免费| 欧美va亚洲va| 成人av资源站| 亚洲制服丝袜av| 欧美一卡2卡三卡4卡5免费| 美女www一区二区| 国产欧美一区在线| 一本色道a无线码一区v| 日日夜夜免费精品| 国产色91在线| 色婷婷久久久亚洲一区二区三区| 天堂va蜜桃一区二区三区| 精品国产亚洲在线| 成人av网站在线观看| 亚洲.国产.中文慕字在线| 日韩欧美一区二区视频| 盗摄精品av一区二区三区| 国产喂奶挤奶一区二区三区| 91黄色在线观看| 免费人成在线不卡| 国产精品免费视频观看| 制服丝袜av成人在线看| 国产成人av电影在线| 亚洲国产日韩精品| 国产色产综合产在线视频| 欧美色手机在线观看| 国产精品456| 亚洲成av人片在线观看无码| 国产亚洲美州欧州综合国| 欧美亚洲愉拍一区二区| 国产成人一级电影| 天堂av在线一区| 国产精品欧美经典| 日韩一区二区在线免费观看| 色系网站成人免费| 国产伦精品一区二区三区免费迷 | 99久久精品国产一区| 日产精品久久久久久久性色| 亚洲欧美日韩电影| 久久久91精品国产一区二区精品| 欧美裸体一区二区三区| 99九九99九九九视频精品| 韩国v欧美v亚洲v日本v| 亚洲va国产va欧美va观看| 最新日韩在线视频| 国产区在线观看成人精品| 日韩一区二区在线播放| 欧美四级电影网| 在线亚洲免费视频| 99久久精品一区| 国产一区二区三区在线观看免费视频| 亚洲成a天堂v人片| 亚洲一二三专区| 国产精品初高中害羞小美女文| 精品国产成人系列| 日韩三级在线免费观看| 91麻豆精品久久久久蜜臀| 色一区在线观看| 91福利精品视频| 色婷婷一区二区| 在线欧美日韩国产| 欧美综合天天夜夜久久| 在线视频国产一区| 欧美性大战久久久久久久| 色综合一区二区三区| 国产福利精品一区| 成人a免费在线看| 91丝袜美腿高跟国产极品老师| gogo大胆日本视频一区| 91色视频在线| 日本精品裸体写真集在线观看| 国产精品18久久久久久久久| 国产黄色精品视频| 成人综合在线网站| 不卡一区在线观看| 91久久精品国产91性色tv| 欧美伊人久久大香线蕉综合69 | 9l国产精品久久久久麻豆| 成人黄色一级视频| 一本大道久久a久久精品综合| 色综合久久88色综合天天免费| 色老头久久综合| 91麻豆精品国产综合久久久久久 | 一区二区三区丝袜| 五月天国产精品| 国产一区二区三区免费播放| 成人国产精品免费观看视频| 一本久道中文字幕精品亚洲嫩 | 国产美女一区二区三区| zzijzzij亚洲日本少妇熟睡| 色婷婷国产精品| 日韩亚洲欧美在线| 欧美国产日韩a欧美在线观看| 亚洲人成伊人成综合网小说| 无码av中文一区二区三区桃花岛| 精品一区二区三区蜜桃| k8久久久一区二区三区 | aa级大片欧美| 日韩一区二区在线观看视频播放 | 91成人免费在线| 精品欧美一区二区在线观看| 国产精品午夜久久| 日韩电影在线免费观看| 国产成人av自拍| 在线不卡的av| 国产精品久久久久9999吃药| 日韩国产一二三区| 99re66热这里只有精品3直播| 日韩三级中文字幕| 亚洲va国产天堂va久久en| 波多野洁衣一区|