freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

軟件工程之面向對象程序設計-文庫吧

2025-06-12 11:58 本頁面


【正文】 函數(shù)。Microsoft 公司的COM規(guī)范的核心是接口設計,COM的接口就相當于類的公有函數(shù)[Rogerson 1999]。在程序設計方面,咱們不要懷疑Microsoft公司的風格。設計孤立的類是比較容易的,難的是正確設計基類及其派生類。因為有些程序員搞不清楚“繼承”(Inheritance)、“組合”(Composition)、“多態(tài)”( Polymorphism)這些概念。 繼承與組合如果A是基類,B是A的派生類,那么B將繼承A的數(shù)據(jù)和函數(shù)。示例程序如下: class A{ public: void Func1(void)。 void Func2(void)。}。class B : public A{ public: void Func3(void)。 void Func4(void)。}。 // Example main(){ B b。 // B的一個對象 ()。 // B從A繼承了函數(shù)Func1 ()。 // B從A繼承了函數(shù)Func2 ()。 ()。}這個簡單的示例程序說明了一個事實:C++的“繼承”特性可以提高程序的可復用性。正因為“繼承”太有用、太容易用,才要防止亂用“繼承”。我們要給“繼承”立一些使用規(guī)則:一、如果類A和類B毫不相關,不可以為了使B的功能更多些而讓B繼承A的功能。不要覺得“白吃白不吃”,讓一個好端端的健壯青年無緣無故地吃人參補身體。二、如果類B有必要使用A的功能,則要分兩種情況考慮:(1)若在邏輯上B是A的“一種”(a kind of ),則允許B繼承A的功能。如男人(Man)是人(Human)的一種,男孩(Boy)是男人的一種。那么類Man可以從類Human派生,類Boy可以從類Man派生。示例程序如下: class Human{ …}。 class Man : public Human{ …}。 class Boy : public Man{ …}。(2)若在邏輯上A是B的“一部分”(a part of),則不允許B繼承A的功能,而是要用A和其它東西組合出B。例如眼(Eye)、鼻(Nose)、口(Mouth)、耳(Ear)是頭(Head)的一部分,所以類Head應該由類Eye、Nose、Mouth、Ear組合而成,不是派生而成。示例程序如下: 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) { ()。 } void Smell(void) { ()。 } void Eat(void) { ()。 } void Listen(void) { ()。 } private: Eye m_eye。 Nose m_nose。 Mouth m_mouth。 Ear m_ear。}。 如果允許Head從Eye、Nose、Mouth、Ear派生而成,那么Head將自動具有Look、 Smell、Eat、Listen這些功能: // 錯誤的設計class Head : public Eye, public Nose, public Mouth, public Ear{}。上述程序十分簡短并且運行正確,但是這種設計卻是錯誤的。很多程序員經不起“繼承”的誘惑而犯下設計錯誤。一只公雞使勁地追打一只剛下了蛋的母雞,你知道為什么嗎?因為母雞下了鴨蛋。“運行正確”的程序不見得就是高質量的程序,此處就是一個例證。 虛函數(shù)與多態(tài)除了繼承外,C++的另一個優(yōu)良特性是支持多態(tài),即允許將派生類的對象當作基類的對象使用。如果A是基類,B和C是A的派生類,多態(tài)函數(shù)Test的參數(shù)是A的指針。那么Test函數(shù)可以引用A、B、C的對象。示例程序如下: class A{ public: v
點擊復制文檔內容
化學相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1