W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
通常認為C++是一種面向對象編程語言,這意味著它提供了支持面向對象編程的特性。
定義面向對象語言并非易事,但是我們已經看到了它具備的一些特性:
1.程序由一些結構定義和函數定義組成,大多數函數操作特定類型的結構(或者對象)。
2.每個結構定義對應著一些現實世界中的物體或概念,對結構進行操作的函數對應著現實世界中物體交互的方式。
例如,我們在第九章中定義的Time結構體明顯對應著人們記錄每天時間的方式,而我們定義的操作對應著人們記錄時間所做的事情。類似地,Point和Rectangle結構體對應于數學概念上的點和矩形。
然而,迄今為止,我們還沒有利用C++提供的支持面向對象編程的特性。嚴格來說,這些特性并非必要。在很大程度上,它們?yōu)槲覀兯龅氖虑樘峁┝肆硪环N語法,但在許多情況下,這種語法能更加簡明和精確地傳達程序的結構。
如Time程序中,結構體定義和函數定義沒有明顯的聯系。通過一些研究發(fā)現,每個函數顯然應當至少將一個Time結構體作為參數。
這種觀察結果是成員函數的動機。成員函數區(qū)別于另外我們寫過的另兩種函數:
1.調用函數時,我們不是直接調用,而是通過對象調用它。人們通常將這種過程描述成“對一個對象執(zhí)行操作”或者“給一個對象發(fā)送消息”。
2.函數在結構體定義中聲明,以使結構和函數之間的關系更加明顯。
在后面幾節(jié)中,我們會從第九章中拿出一些函數,并把它們轉化成成員函數。你應該意識到這種轉換是純機械的。話句話說,你只需遵循一系列步驟就能完成。
如我所說,任何成員函數能做的事情,也能用非成員函數(有時稱為獨立函數)完成。但有時其中一種會優(yōu)于另一種。如果你能很自然地從一種形式轉換到另一種,那么你就能為你做的事情選擇最好的形式。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: