軟件工程之C++麵向對象程序設計概述(doc 12頁)
軟件工程之C++麵向對象程序設計概述目錄:
1 C++麵向對象程序設計的重要概念
2 良好的編程風格
3 小結
軟件工程之C++麵向對象程序設計概述內容摘要:
會用C++的程序員一定懂得麵向對象程序設計嗎?
不會用C++的程序員一定不懂得麵向對象程序設計嗎?
兩者都未必。就象壞蛋入黨後未必能成為好人,好人不入黨未必變成壞蛋那樣。
我不怕觸犯眾怒地說句大話:“C++沒有高手,C語言才有高手。”在用C和C++編程8年之後,我深深地遺憾自己不是C語言的高手,更遺憾沒有人點撥我如何進行麵向對象程序設計。我和很多C++程序員一樣,在享用到C++語法的好處時便以為自己已經明白了麵向對象程序設計。就象擠掉牙膏賣牙膏皮那樣,真是暴殄天物呀。
人們不懂拚音也會講普通話,如果懂得拚音則會把普通話講得更好。不懂麵向對象程序設計也可以用C++編程,如果懂得麵向對象程序設計則會把C++程序編得更好。本節講述三個非常基礎的概念:“類與對象”、“繼承與組合”、“虛函數與多態”。理解這些概念,有助於提高程序的質量,特別是提高“可複用性”與“可擴充性”。
6.1.1 類與對象
對象(Object)是類(Class)的一個實例(Instance)。如果將對象比作房子,那麼類就是房子的設計圖紙。所以麵向對象程序設計的重點是類的設計,而不是對象的設計。
類可以將數據和函數封裝在一起,其中函數表示了類的行為(或稱服務)。類提供關鍵字public、protected和private用於聲明哪些數據和函數是公有的、受保護的或者是私有的。這樣可以達到信息隱藏的目的,即讓類僅僅公開必須要讓外界知道的內容,而隱藏其它一切內容(參見5.2.1節“信息隱藏”)。我們不可以濫用類的封裝功能,不要把它當成火鍋,什麼東西都往裏扔。
類的設計是以數據為中心,還是以行為為中心?
主張“以數據為中心”的那一派人關注類的內部數據結構,他們習慣上將private類型的數據寫在前麵,而將public類型的函數寫在後麵,如表8.1(a)所示。
主張“以行為為中心”的那一派人關注類應該提供什麼樣的服務和接口,他們習慣上將public類型的函數寫在前麵,而將private類型的數據寫在後麵,如表8.1(b)所示。
..............................