溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何淺析難以捉摸的C++語(yǔ)言多樣化問(wèn)題

發(fā)布時(shí)間:2021-10-27 18:05:05 來(lái)源:億速云 閱讀:169 作者:柒染 欄目:編程語(yǔ)言

如何淺析難以捉摸的C++語(yǔ)言多樣化問(wèn)題,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

其實(shí)C#的語(yǔ)法與C++語(yǔ)言非常相似,有些變化引起的錯(cuò)誤卻很嚴(yán)重,本文就對(duì)于大多數(shù)用戶頭疼的C++語(yǔ)言進(jìn)行詳細(xì)的剖析與介紹,建議我們把標(biāo)準(zhǔn)C++當(dāng)作一種全新的語(yǔ)言來(lái)學(xué)習(xí)。

程序代碼也有風(fēng)格,這算不得什么新鮮事。早在20世紀(jì)80年代, C語(yǔ)言程序員就必須在K&R風(fēng)格和ANSI風(fēng)格之間擇善而從。但平心而論,我確實(shí)沒(méi)有見(jiàn)過(guò)哪一種語(yǔ)言能像C++這樣,

在代碼風(fēng)格方面表現(xiàn)得如此詭譎和難以捉摸:誰(shuí)也說(shuō)不清C++代碼究竟能衍生出多少種迥異的風(fēng)格,但我知道,有許多C++初學(xué)者在面對(duì)不同風(fēng)格的C++代碼時(shí),經(jīng)常會(huì)誤以為自己看到的是好幾種完全不同的編程語(yǔ)言——僅此一點(diǎn)就足以提醒我們,研究和廓清C++語(yǔ)言風(fēng)格的演化和發(fā)展規(guī)律已是當(dāng)務(wù)之急了。

帶類的C——對(duì)C語(yǔ)言風(fēng)格的因襲

在1983年12月Bjarne Stroustrup采納Rick Mascitti的建議,將其發(fā)明的新語(yǔ)言命名為“C++”之前,人們一直用“帶類的C(C with Classes)”來(lái)稱呼這種脫胎于C語(yǔ)言的,帶有數(shù)據(jù)抽象機(jī)制的“方言”。

雖然帶類的C在本質(zhì)上僅僅是一種可以被預(yù)處理程序Cpre轉(zhuǎn)換為傳統(tǒng)C語(yǔ)言代碼(這類似于我們?cè)贠racle中見(jiàn)到的Pro*C語(yǔ)言的預(yù)處理過(guò)程)的擴(kuò)展性語(yǔ)言,但它的確在風(fēng)格上奠定了后來(lái)所有C++代碼的基礎(chǔ)。

class stack {    char s[SIZE];    char* min;    char* top;    char* max;    void new();  public:    void push(char);    char pop();  };

這段“帶類的C”代碼錄自Stroustrup所著的《C++語(yǔ)言的設(shè)計(jì)和演化》。代碼中的new()其實(shí)是類stack的構(gòu)造函數(shù),這與后來(lái)的C++語(yǔ)言有很大的不同。

顯而易見(jiàn),帶類的C在風(fēng)格上幾乎完整地承襲了C語(yǔ)言的衣缽。代碼中的聲明語(yǔ)句看上去與C語(yǔ)言一模一樣,class的結(jié)構(gòu)也與C語(yǔ)言中struct的結(jié)構(gòu)大致相仿,這些跡象反映出C++語(yǔ)言來(lái)源于C又盡量與C保持兼容的設(shè)計(jì)思想。

這種設(shè)計(jì)思想既為C++的迅速普及提供了便利(C++語(yǔ)言的順利推廣顯然得益于C語(yǔ)言已有的龐大用戶群),也在C++的語(yǔ)言風(fēng)格中深深地烙上了C語(yǔ)言的印記,以至于在若干年后,當(dāng)C++語(yǔ)言已經(jīng)基本具備了“獨(dú)立人格”的時(shí)候,Stroustrup還不得不時(shí)常提醒人們要盡量拋開(kāi)C語(yǔ)言的思維方式。

另一方面,Stroustrup從Simula語(yǔ)言借用的類、派生、訪問(wèn)控制等面向?qū)ο蟾拍钤趲ь惖腃中牢牢地扎下了根。據(jù)Stroustrup介紹,他為C語(yǔ)言引入面向?qū)ο髾C(jī)制的本意在于尋找一種“合適的工具”。

以便實(shí)現(xiàn)分布式系統(tǒng)或解決類似的復(fù)雜問(wèn)題。但無(wú)論怎樣,Stroustrup將C的高效和Simula的優(yōu)雅捆綁在一起的做法都在事實(shí)上為C++語(yǔ)言埋下了“雙重性格”的種子——很難說(shuō)這不是C++語(yǔ)言風(fēng)格多樣化的直接誘因。

看完上述內(nèi)容,你們掌握如何淺析難以捉摸的C++語(yǔ)言多樣化問(wèn)題的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

c++
AI