高質(zhì)量的C++設(shè)計(jì)書(shū)寫(xiě)規(guī)范_第1頁(yè)
高質(zhì)量的C++設(shè)計(jì)書(shū)寫(xiě)規(guī)范_第2頁(yè)
高質(zhì)量的C++設(shè)計(jì)書(shū)寫(xiě)規(guī)范_第3頁(yè)
高質(zhì)量的C++設(shè)計(jì)書(shū)寫(xiě)規(guī)范_第4頁(yè)
高質(zhì)量的C++設(shè)計(jì)書(shū)寫(xiě)規(guī)范_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

高質(zhì)量的

C++程序設(shè)計(jì)簡(jiǎn)興祥2013-5-28Clicktoaddyourtext高質(zhì)量的C++程序設(shè)計(jì)五、其他經(jīng)驗(yàn)〔解決問(wèn)題〕四、了解C++的高級(jí)特性〔解決問(wèn)題〕三、內(nèi)存管理的技巧〔解決問(wèn)題〕二、標(biāo)準(zhǔn)的程序設(shè)計(jì)訓(xùn)練〔解決問(wèn)題〕一、問(wèn)題?〔提出問(wèn)題〕一、問(wèn)題?1.編程老手與高手的誤區(qū)自從計(jì)算機(jī)問(wèn)世以來(lái),程序設(shè)計(jì)就成了令人羨慕的職業(yè),程序員在受人寵愛(ài)之后容易開(kāi)展成為毛病特多卻常能自我臭美的群體。曾經(jīng)在Internet上流傳的“真正”的程序員據(jù)說(shuō)是這樣的:一、問(wèn)題?真正的程序員沒(méi)有進(jìn)度表,只有討好領(lǐng)導(dǎo)的馬屁精才有進(jìn)度表,真正的程序員會(huì)讓領(lǐng)導(dǎo)提心吊膽。真正的程序員幾乎不寫(xiě)代碼的注釋?zhuān)绻⑨尯茈y寫(xiě),它理所當(dāng)然也很難讀。真正的程序員不看參考手冊(cè),新手和膽小鬼才會(huì)看。真正的程序員不寫(xiě)文檔也不需要文檔,只有看不懂程序的笨蛋才用文檔。真正的程序員認(rèn)為自己比用戶(hù)更明白用戶(hù)需要什么。真正的程序員不接受團(tuán)隊(duì)開(kāi)發(fā)的理念,除非他自己是頭頭。真正的程序員的程序不會(huì)在第一次就正確運(yùn)行,但是他們?cè)敢馐刂鴻C(jī)器進(jìn)行假設(shè)干個(gè)30小時(shí)的調(diào)試改錯(cuò)。真正的程序員不會(huì)在上午9:00到下午5:00之間工作,如果你看到他在上午9:00工作,這說(shuō)明他從昨晚一直干到現(xiàn)在。一、問(wèn)題?2軟件質(zhì)量問(wèn)題〔1〕編程風(fēng)格;〔2〕出錯(cuò)處理;〔3〕算法復(fù)雜度分析〔用于提高性能〕;〔4〕其他:正確性、健壯性、可靠性、效率、易用性、可讀性〔可理解性〕、可擴(kuò)展性、可復(fù)用性、兼容性、可移植性等。3目前現(xiàn)狀〔1〕教育的無(wú)視〔2〕企業(yè)不重視一、問(wèn)題?請(qǐng)寫(xiě)出BOOL變量flag與“零值”比較語(yǔ)句:不標(biāo)準(zhǔn)寫(xiě)法if(flag==TRUE) if(flag==1) if(flag==FALSE)if(flag==0) 標(biāo)準(zhǔn)寫(xiě)法if(flag)if(!flag)一、問(wèn)題?請(qǐng)寫(xiě)出floatx與“零值”比較語(yǔ)句:不標(biāo)準(zhǔn)寫(xiě)法if(x==0)if(x==0.0)標(biāo)準(zhǔn)寫(xiě)法constfloatEPSINON=0.00001;if((x>=-EPSINON)&&(x<=EPSINON))一、問(wèn)題?請(qǐng)寫(xiě)出char*p與“零值”比較語(yǔ)句:不標(biāo)準(zhǔn)寫(xiě)法if(p==0) if(p!=1) if(p)if(!p)標(biāo)準(zhǔn)寫(xiě)法if(p==NULL)if(p!=NULL)高質(zhì)量的C++程序設(shè)計(jì)五、其他經(jīng)驗(yàn)四、了解C++的高級(jí)特性三、內(nèi)存管理的技巧二、標(biāo)準(zhǔn)的程序設(shè)計(jì)訓(xùn)練一、問(wèn)題?〔提出問(wèn)題〕標(biāo)準(zhǔn)的程序設(shè)計(jì)訓(xùn)練1.文件結(jié)構(gòu)2.程序的板式3.命名規(guī)那么4.表達(dá)式和根本語(yǔ)句5.常量6.函數(shù)設(shè)計(jì)7.類(lèi)的構(gòu)造、析構(gòu)、賦值8.類(lèi)的繼承與組合1.文件結(jié)構(gòu)頭文件的結(jié)構(gòu)2實(shí)現(xiàn)文件的結(jié)構(gòu)3頭文件的作用4目錄結(jié)構(gòu)5版權(quán)與版本聲明1版權(quán)和版本的聲明版權(quán)和版本的聲明位于頭文件和定義文件的開(kāi)頭,主要內(nèi)容有:〔1〕版權(quán)信息;〔2〕文件名稱(chēng),標(biāo)識(shí)符,摘要;〔3〕當(dāng)前版本號(hào),作者/修改者,完成日期;〔4〕版本歷史信息。頭文件的結(jié)構(gòu)

頭文件由三局部?jī)?nèi)容組成:〔1〕頭文件開(kāi)頭處的版權(quán)和版本聲明〔2〕預(yù)處理塊?!?〕函數(shù)和類(lèi)結(jié)構(gòu)聲明等?!疽?guī)那么1】為了防止頭文件被重復(fù)引用,應(yīng)當(dāng)用ifndef/define/endif結(jié)構(gòu)產(chǎn)生預(yù)處理塊?!疽?guī)那么2】用#include<filename.h>格式來(lái)引用標(biāo)準(zhǔn)庫(kù)的頭文件〔編譯器將從標(biāo)準(zhǔn)庫(kù)目錄開(kāi)始搜索〕?!疽?guī)那么3】用#include“filename.h”格式來(lái)引用非標(biāo)準(zhǔn)庫(kù)的頭文件〔編譯器將從用戶(hù)的工作目錄開(kāi)始搜索〕?!窘ㄗh1】頭文件中只存放“聲明”而不存放“定義”【建議1】不提倡使用全局變量,盡量不要在頭文件中出現(xiàn)象externintvalue這類(lèi)聲明。頭文件的結(jié)構(gòu)

例如:以Graphics.h文件為例實(shí)現(xiàn)文件的結(jié)構(gòu)實(shí)現(xiàn)文件有三局部?jī)?nèi)容:〔1〕定義文件開(kāi)頭處的版權(quán)和版本聲明;〔2〕對(duì)一些頭文件的引用;〔3〕程序的實(shí)現(xiàn)體〔包括數(shù)據(jù)和代碼〕?!窘ㄗh1】:盡量不要在實(shí)現(xiàn)文件中引入聲明;【建議2】:一個(gè)實(shí)現(xiàn)文件對(duì)應(yīng)一個(gè)頭文件和類(lèi)。頭文件的作用頭文件的作用:〔1〕通過(guò)頭文件來(lái)調(diào)用庫(kù)功能:在很多場(chǎng)合,源代碼不便〔或不準(zhǔn)〕向用戶(hù)公布,只要向用戶(hù)提供頭文件和二進(jìn)制的庫(kù)即可。用戶(hù)只需要按照頭文件中的接口聲明來(lái)調(diào)用庫(kù)功能,而不必關(guān)心接口怎么實(shí)現(xiàn)的。編譯器會(huì)從庫(kù)中提取相應(yīng)的代碼?!?〕頭文件能加強(qiáng)類(lèi)型平安檢查:如果某個(gè)接口被實(shí)現(xiàn)或被使用時(shí),其方式與頭文件中的聲明不一致,編譯器就會(huì)指出錯(cuò)誤,這一簡(jiǎn)單的規(guī)那么能大大減輕程序員調(diào)試、改錯(cuò)的負(fù)擔(dān)。目錄結(jié)構(gòu)如果一個(gè)軟件的頭文件數(shù)目比較多〔如超過(guò)十個(gè)〕,通常應(yīng)將頭文件和實(shí)現(xiàn)文件分別保存于不同的目錄,以便于維護(hù);例如可將頭文件保存于include目錄,將定義文件保存于source目錄〔可以是多級(jí)目錄〕;如果某些頭文件是私有的,它不會(huì)被用戶(hù)的程序直接引用,那么沒(méi)有必要公開(kāi)其“聲明”。為了加強(qiáng)信息隱藏,這些私有的頭文件可以和定義文件存放于同一個(gè)目錄。2程序的版式

空行代碼行代碼行內(nèi)空格對(duì)齊長(zhǎng)行拆分修飾符的位置注釋類(lèi)的版式空行空行的作用:空行起著分隔程序段落的作用??招械皿w〔不過(guò)多也不過(guò)少〕將使程序的布局更加清晰??招胁粫?huì)浪費(fèi)內(nèi)存,雖然打印含有空行的程序是會(huì)多消耗一些紙張,但是值得。所以不要舍不得用空行?!疽?guī)那么1】在每個(gè)類(lèi)聲明之后、每個(gè)函數(shù)定義結(jié)束之后都要加空行?!疽?guī)那么2】在一個(gè)函數(shù)體內(nèi),邏揖上密切相關(guān)的語(yǔ)句之間不加空行,其它地方應(yīng)加空行分隔。代碼行

【規(guī)那么1】一行代碼只做一件事情,如只定義一個(gè)變量,或只寫(xiě)一條語(yǔ)句。這樣的代碼容易閱讀,并且方便于寫(xiě)注釋?!疽?guī)那么2】if、for、while、do等語(yǔ)句自占一行,執(zhí)行語(yǔ)句不得緊跟其后。不管執(zhí)行語(yǔ)句有多少都要加{}。這樣可以防止書(shū)寫(xiě)失誤。代碼行【建議1】盡可能在定義變量的同時(shí)初始化該變量〔就近原那么〕如果變量的引用處和其定義處相隔比較遠(yuǎn),變量的初始化很容易被忘記。如果引用了未被初始化的變量,可能會(huì)導(dǎo)致程序錯(cuò)誤。本建議可以減少隱患。例如intwidth=10; //定義并初紿化widthintheight=10; //定義并初紿化heightintdepth=10; //定義并初紿化depth代碼行內(nèi)的空格【規(guī)那么1】關(guān)鍵字之后要留空格。象const、virtual、inline、case等關(guān)鍵字之后至少要留一個(gè)空格,否那么無(wú)法辨析關(guān)鍵字。if、for、while等關(guān)鍵字之后應(yīng)留一個(gè)空格再跟左括號(hào)‘〔’,以突出關(guān)鍵字?!疽?guī)那么2】函數(shù)名之后不要留空格,緊跟左括號(hào)‘〔’,以與關(guān)鍵字區(qū)別。【規(guī)那么3】‘〔’向后緊跟,‘〕’、‘,’、‘;’向前緊跟,緊跟處不留空格。【規(guī)那么4】‘,’之后要留空格,如Function(x,y,z)。如果‘;’不是一行的結(jié)束符號(hào),其后要留空格,如for(initialization;condition;update)。代碼行內(nèi)的空格【規(guī)那么5】賦值操作符、比較操作符、算術(shù)操作符、邏輯操作符、位域操作符,如“=”、“+=”“>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^”等二元操作符的前后應(yīng)當(dāng)加空格?!疽?guī)那么6】一元操作符如“!”、“~”、“++”、“--”、“&”〔地址運(yùn)算符〕等前后不

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論