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