【正文】
ert看成一個在任何系統(tǒng)狀態(tài)下都可以安全使用的無害測試手段。 void *pbFrom = (byte *) pvFrom。匈牙利命名法是Microsoft公司倡導的 [Maguire 1993],雖然很煩瑣,但用習慣了也就成了自然。這一招叫“以不變應萬變”,可以大大提高程序的可復用性(這是接口設計的復用,而不是代碼實現(xiàn)的復用)。 // 輸出 This is B::Func1Test(amp。 class C : public A{ public: virtual void Func1(void){ cout “This is C::Func1 \n”}}。Test(amp。 class C : public A{ …}。“運行正確”的程序不見得就是高質(zhì)量的程序,此處就是一個例證。 Nose m_nose。 }。 class Boy : public Man{ …}。正因為“繼承”太有用、太容易用,才要防止亂用“繼承”。 void Func4(void)。在程序設計方面,咱們不要懷疑Microsoft公司的風格。void Func2(void)。類提供關鍵字public、protected和private用于聲明哪些數(shù)據(jù)和函數(shù)是公有的、受保護的或者是私有的。人們不懂拼音也會講普通話,如果懂得拼音則會把普通話講得更好。 C++面向?qū)ο蟪绦蛟O計的重要概念早期革命影片里有這樣一個角色,他說:“我是黨代表,我代表黨,我就是黨?!蔽铱戳藥浊ы摰能浖こ藤Y料,終于發(fā)現(xiàn)自己有些“弱智”,無法理解“面向?qū)ο蟆钡睦碚摚瑫r醒悟到“編程是硬道理。第六章 C++面向?qū)ο蟪绦蛟O計六年前,我剛熱戀“面向?qū)ο蟆保∣bjectOriented)時,一口氣記住了近十個定義。老蔣看了氣得大罵:“娘希匹,全都有一股棺材里腐尸的氣味。如果我能早幾年明白這些小道理,就可以大大改善數(shù)十萬行程序的質(zhì)量了。就象擠掉牙膏賣牙膏皮那樣,真是暴殄天物呀。類可以將數(shù)據(jù)和函數(shù)封裝在一起,其中函數(shù)表示了類的行為(或稱服務)。 … public:void Func1(void)。Microsoft 公司的COM規(guī)范的核心是接口設計,COM的接口就相當于類的公有函數(shù)[Rogerson 1999]。class B : public A{ public: void Func3(void)。}這個簡單的示例程序說明了一個事實:C++的“繼承”特性可以提高程序的可復用性。 class Man : public Human{ …}。 class Mouth{ public: void Eat(void)。 } private: Eye m_eye。一只公雞使勁地追打一只剛下了蛋的母雞,你知道為什么嗎?因為母雞下了鴨蛋。} class B : public A{ …}。b)。} class B : public A{ public: virtual void Func1(void){ cout “This is B::Func1 \n”}}。b)。結合“抽象基類”和“多態(tài)”有如下突出優(yōu)點:(1)應用程序不必為每一個派生類編寫功能調(diào)用,只需要對抽象基類進行處理即可。程序中的英文一般不會太復雜,用詞要力求準確。 //復制不重疊的內(nèi)存塊 void memcpy(void *pvTo, void *pvFrom, size_t size){ void *pbTo = (byte *) pvTo。所以assert不是函數(shù),而是宏。這好比一個人在森林里,看到樹上釘著一塊“危險”的大牌子。當進行防錯性編程時,如果“不可能發(fā)生”的事情的確發(fā)生了,則要使用斷言進行報警。 在用delete或用free釋放p所指的內(nèi)存后,應該馬上顯式地將p置為NULL,以防下次使用p時發(fā)生錯誤。 …// do something else delete p。 // 注意 a 的生命期} pFunc()。s)。因此上述程序中的函數(shù)g和h應該定義成: void g(const String amp。 int data[100]。大多數(shù)編程語言將FALSE定義為0,任何非0值都是TRUE。 本章的內(nèi)容少得可憐,就象口渴時只給你一顆楊梅吃,你一定不過癮。27 / 27