一種簡(jiǎn)捷的編程語(yǔ)言——C++語(yǔ)言
作為比C語(yǔ)言更簡(jiǎn)捷的語(yǔ)言,C++語(yǔ)言提供了更好的機(jī)制來(lái)增強(qiáng)程序的安全性,C++編譯器具有嚴(yán)格的類型安全檢查功能,它幾乎能找出程序中所有的語(yǔ)法問(wèn)題,這點(diǎn)大大的幫助了開(kāi)發(fā)人員。
據(jù)考察,沒(méi)有一種命名規(guī)則可以讓所有的程序員贊同,程序設(shè)計(jì)教科書(shū)一般都不指定命名規(guī)則。命名規(guī)則對(duì)軟件產(chǎn)品而言并不是“成敗悠關(guān)”的事。我們不要化太多精力試圖發(fā)明世界上最好的命名規(guī)則,而應(yīng)當(dāng)制定一種令大多數(shù)項(xiàng)目成員滿意的命名規(guī)則,并在項(xiàng)目中貫徹實(shí)施。
具備上述特征越多,越顯得水平高,資格老。所以別奇怪,程序員的很多缺點(diǎn)竟然可以被當(dāng)作優(yōu)點(diǎn)來(lái)欣賞。就象在武俠小說(shuō)中。那些獨(dú)來(lái)獨(dú)往、不受約束且?guī)c(diǎn)邪氣的高手最令人崇拜。我曾經(jīng)也這樣信奉,并且希望自己成為那樣的“真正”的程序員,結(jié)果沒(méi)有得到好下場(chǎng)。
我從讀大學(xué)到博士畢業(yè)十年來(lái)一直勤奮好學(xué),累計(jì)編寫(xiě)了數(shù)十萬(wàn)行 C++/C 代碼。有這樣的苦勞和疲勞,我應(yīng)該稱得上是編程老手了吧? 我開(kāi)發(fā)的軟件都與科研相關(guān)(集成電路 CAD 和 3D 圖形學(xué)領(lǐng)域)。
動(dòng)輒數(shù)萬(wàn)行程序,技術(shù)復(fù)雜,難度頗高。這些軟件頻頻獲獎(jiǎng),有一個(gè)軟件獲得首屆中國(guó)大學(xué)生電腦大賽軟件展示一等獎(jiǎng)。在 1995 年開(kāi)發(fā)的一套圖形軟件庫(kù)到 2000 年還有人買(mǎi)。羅列出這些“業(yè)績(jī)”,可以說(shuō)明我算得上是編程高手了吧?
他雖然從未涉足過(guò) 3D 圖形領(lǐng)域,卻在幾十分鐘內(nèi)指出該軟件多處重大設(shè)計(jì)錯(cuò)誤。讓人感覺(jué)那套軟件是用紙糊的華麗衣服,扯一下掉一塊,戳一下破個(gè)洞。我目瞪口呆地意識(shí)到這套軟件毫無(wú)實(shí)用價(jià)值,一年的心血白化了,并且害死了自己的軟件公司。
人的頓悟通常發(fā)生在最心痛的時(shí)刻,在沮喪和心痛之后,我作了深刻反省,“面壁”半年,重新溫習(xí)軟件設(shè)計(jì)的基礎(chǔ)知識(shí)。補(bǔ)修“內(nèi)功”之后,又覺(jué)得腰板硬了起來(lái)。博士畢業(yè)前半年,我曾到微軟中國(guó)研究院找工作,接受微軟公司一位資深軟件工程師的面試。他讓我寫(xiě)函數(shù) strcpy 的代碼。
C++是個(gè)強(qiáng)大的語(yǔ)言,可以用于做別的語(yǔ)言做不了的工作。但是,這種強(qiáng)大功能是有代價(jià)的。開(kāi)始使用C++語(yǔ)言時(shí),你可能會(huì)遇到內(nèi)存溢出和訪問(wèn)失效等問(wèn)題,使程序死機(jī)。這里用最簡(jiǎn)短的篇幅介紹C++語(yǔ)言基礎(chǔ)。
C++語(yǔ)言本身有專著介紹,這種書(shū)還特別厚,所以別指望我能用三言兩語(yǔ)說(shuō)清楚。讀者學(xué)完本書(shū)并使用C++ Builder一般時(shí)間之后,最后對(duì)C++語(yǔ)言再作更深入的了解。 C++可以最充分地利用面向?qū)ο缶幊?OOP)的優(yōu)勢(shì)。
OOP不只是一個(gè)新名詞,而有它的實(shí)際意義,可以生成可復(fù)用的對(duì)象。新術(shù)語(yǔ) 對(duì)象(object),和前面介紹的構(gòu)件一樣,是完成特定編程任務(wù)的軟件塊(構(gòu)件是對(duì)象,但對(duì)象不全是構(gòu)件,稍后會(huì)解釋這點(diǎn))。
對(duì)象只向用戶(使用對(duì)象的編程人員)顯示必須的部分,從而簡(jiǎn)化對(duì)象的使用。用戶不必知道的所有內(nèi)部機(jī)制都隱藏在幕后。這一切都包括在面向?qū)ο缶幊痰母拍钪?。OOP可以用模塊化方法進(jìn)行編程,從而避免每次從頭開(kāi)始。C++ Builder程序是面向OOP的,因?yàn)?FONT size=+0>C++ Builder大量使用構(gòu)件。
生成構(gòu)件后(你生成的或C++ Builder內(nèi)置的構(gòu)件),C++語(yǔ)言就可以在任何C++ Builder程序中重復(fù)使用。構(gòu)件還可以擴(kuò)展,通過(guò)繼承生成具有新功能的新構(gòu)件。最妙的是,構(gòu)件隱藏了所有內(nèi)容細(xì)節(jié),使編程人員能集中精力充分利用構(gòu)件。
【編輯推薦】