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

正文內(nèi)容

軟件工程之面向?qū)ο蟪绦蛟O(shè)計(jì)-在線瀏覽

2024-08-07 11:58本頁(yè)面
  

【正文】 表示了類的行為(或稱服務(wù))。這樣可以達(dá)到信息隱藏的目的,即讓類僅僅公開必須要讓外界知道的內(nèi)容,而隱藏其它一切內(nèi)容(“信息隱藏”)。類的設(shè)計(jì)是以數(shù)據(jù)為中心,還是以行為為中心?主張“以數(shù)據(jù)為中心”的那一派人關(guān)注類的內(nèi)部數(shù)據(jù)結(jié)構(gòu),他們習(xí)慣上將private類型的數(shù)據(jù)寫在前面,而將public類型的函數(shù)寫在后面,(a)所示。Class A{ private:int i, j。 … public:void Func1(void)?!瓆class A{ public:void Func1(void)?!? private:int i, j。 …}(a) 以數(shù)據(jù)為中心的書寫風(fēng)格 (b)以行為為中心的書寫風(fēng)格很多C++教課書主張?jiān)谠O(shè)計(jì)類時(shí)“以數(shù)據(jù)為中心”。Microsoft 公司的COM規(guī)范的核心是接口設(shè)計(jì),COM的接口就相當(dāng)于類的公有函數(shù)[Rogerson 1999]。設(shè)計(jì)孤立的類是比較容易的,難的是正確設(shè)計(jì)基類及其派生類。 繼承與組合如果A是基類,B是A的派生類,那么B將繼承A的數(shù)據(jù)和函數(shù)。 void Func2(void)。class B : public A{ public: void Func3(void)。}。 // B的一個(gè)對(duì)象 ()。 // B從A繼承了函數(shù)Func2 ()。}這個(gè)簡(jiǎn)單的示例程序說明了一個(gè)事實(shí):C++的“繼承”特性可以提高程序的可復(fù)用性。我們要給“繼承”立一些使用規(guī)則:一、如果類A和類B毫不相關(guān),不可以為了使B的功能更多些而讓B繼承A的功能。二、如果類B有必要使用A的功能,則要分兩種情況考慮:(1)若在邏輯上B是A的“一種”(a kind of ),則允許B繼承A的功能。那么類Man可以從類Human派生,類Boy可以從類Man派生。 class Man : public Human{ …}。(2)若在邏輯上A是B的“一部分”(a part of),則不允許B繼承A的功能,而是要用A和其它東西組合出B。示例程序如下: class Eye{ public: void Look(void)。 class Nose{ public: void Smell(void)。 class Mouth{ public: void Eat(void)。 class Ear{ public: void Listen(void)。 // 正確的設(shè)計(jì),冗長(zhǎng)的程序 class Head{ public: void Look(void) { ()。 } void Eat(void) { ()。 } private: Eye m_eye。 Mouth m_mouth。}。上述程序十分簡(jiǎn)短并且運(yùn)行正確,但是這種設(shè)計(jì)卻是錯(cuò)誤的。一只公雞使勁地追打一只剛下了蛋的母雞,你知道為什么嗎?因?yàn)槟鸽u下了鴨蛋。 虛函數(shù)與多態(tài)除了繼承外,C++的另一個(gè)優(yōu)良特性是支持多態(tài),即允許將派生類的對(duì)象當(dāng)作基類的對(duì)象使用。那么Test函數(shù)可以引用A、B、C的對(duì)象。}。} class B : public A{ …}。 // Example main(){A a。C c。a)。b)。c)。以上程序看不出“多態(tài)”有什么價(jià)值,加上虛函數(shù)和抽象基類后,“多態(tài)”的威力就顯示出來了。示例程序如下: class A{ public: virtual void Func1(void){ cout “This is A::Func1 \n”}}。} class B : public A{ public: virtual void Func1(void){ cout “This is B::Func1 \n”}}。 // Example main(){A a。C c。a)。b)。c)。如果基類A定義如下: class A{ public: virtual void Func1(void)=0。 那么函數(shù)Func1叫作純虛函數(shù),含有純虛函數(shù)的類叫作抽象基類。結(jié)合“抽象基類”和
點(diǎn)擊復(fù)制文檔內(nèi)容
化學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1