美國留學(xué)選擇什么專業(yè)好?留學(xué)美國熱門專業(yè)推薦
2019-06-26
更新時間:2024-06-10 19:49作者:小樂
C 和C+ 有什么區(qū)別? C語言和C++有什么區(qū)別?如果用一句話來概括的話,那一定是C語言是面向過程的編程,而C+是面向?qū)ο蟮木幊?。然而,初學(xué)者很難理解面向?qū)ο蟮乃枷?。我們直接編碼學(xué)習(xí)C語言的時候講的是列表,先設(shè)置一個頭指針,然后初始化頭節(jié)點(diǎn)。接下來將數(shù)據(jù)插入列表中。鏈表的插入操作也分為幾個步驟:首先將指針移動到插入位置的上一個位置,然后判斷該位置是否合法,然后申請新的節(jié)點(diǎn)來調(diào)整指針。過程非常繁瑣,每一步都需要自己編寫代碼來實(shí)現(xiàn)。效率很低,而且可能存在bug。
但使用C+,當(dāng)需要使用列表時,只需要一行代碼即可創(chuàng)建列表對象。其實(shí)這行代碼已經(jīng)完成了剛才C element中l(wèi)ist的初始化操作。如果需要向列表中插入數(shù)據(jù),直接使用pushback函數(shù)即可。顯然,C家族的特點(diǎn)就是很多東西別人已經(jīng)幫你實(shí)現(xiàn)了,我們只需要能夠調(diào)用就可以了。
但學(xué)習(xí)C+ 并不僅僅停留在調(diào)用步驟。你必須明白它是怎么來的。要創(chuàng)建對象,您必須學(xué)習(xí)成本構(gòu)造和虛構(gòu)。列表既可以保存內(nèi)部類型數(shù)據(jù),也可以保存其他類型的數(shù)據(jù)。你必須學(xué)習(xí)模板。你還可以根據(jù)列表添加自己的函數(shù),所以你還得學(xué)習(xí)繼承和多態(tài)。
什么是過程導(dǎo)向?它只需要您自己的一行代碼來實(shí)現(xiàn)它。什么是面向?qū)ο??它意味著用更常?guī)的思維邏輯來解決問題。一般人組裝電腦時,都會購買現(xiàn)成的主機(jī)、顯示器、鍵盤,很少有人在組裝時自己畫電路板。
所以他們的優(yōu)點(diǎn)和缺點(diǎn)也是非常明顯的。面向流程的開發(fā)效率低,但運(yùn)行效率高。面向?qū)ο髴?yīng)該增加很多機(jī)制,程序員的開發(fā)效率會更高。但運(yùn)行效率確實(shí)不如C語言。