首頁(yè)考試吧論壇Exam8視線考試商城網(wǎng)絡(luò)課程模擬考試考友錄實(shí)用文檔求職招聘論文下載
2013中考
法律碩士
2013高考
MBA考試
2013考研
MPA考試
在職研
中科院
考研培訓(xùn) 自學(xué)考試 成人高考
四 六 級(jí)
GRE考試
攻碩英語(yǔ)
零起點(diǎn)日語(yǔ)
職稱英語(yǔ)
口譯筆譯
申碩英語(yǔ)
零起點(diǎn)韓語(yǔ)
商務(wù)英語(yǔ)
日語(yǔ)等級(jí)
GMAT考試
公共英語(yǔ)
職稱日語(yǔ)
新概念英語(yǔ)
專四專八
博思考試
零起點(diǎn)英語(yǔ)
托?荚
托業(yè)考試
零起點(diǎn)法語(yǔ)
雅思考試
成人英語(yǔ)三級(jí)
零起點(diǎn)德語(yǔ)
等級(jí)考試
華為認(rèn)證
水平考試
Java認(rèn)證
職稱計(jì)算機(jī) 微軟認(rèn)證 思科認(rèn)證 Oracle認(rèn)證 Linux認(rèn)證
公 務(wù) 員
導(dǎo)游考試
物 流 師
出版資格
單 證 員
報(bào) 關(guān) 員
外 銷 員
價(jià)格鑒證
網(wǎng)絡(luò)編輯
駕 駛 員
報(bào)檢員
法律顧問(wèn)
管理咨詢
企業(yè)培訓(xùn)
社會(huì)工作者
銀行從業(yè)
教師資格
營(yíng)養(yǎng)師
保險(xiǎn)從業(yè)
普 通 話
證券從業(yè)
跟 單 員
秘書資格
電子商務(wù)
期貨考試
國(guó)際商務(wù)
心理咨詢
營(yíng) 銷 師
司法考試
國(guó)際貨運(yùn)代理人
人力資源管理師
廣告師職業(yè)水平
衛(wèi)生資格 執(zhí)業(yè)醫(yī)師 執(zhí)業(yè)藥師 執(zhí)業(yè)護(hù)士
會(huì)計(jì)從業(yè)資格
基金從業(yè)資格
統(tǒng)計(jì)從業(yè)資格
經(jīng)濟(jì)師
精算師
統(tǒng)計(jì)師
會(huì)計(jì)職稱
法律顧問(wèn)
ACCA考試
注冊(cè)會(huì)計(jì)師
資產(chǎn)評(píng)估師
審計(jì)師考試
高級(jí)會(huì)計(jì)師
注冊(cè)稅務(wù)師
國(guó)際內(nèi)審師
理財(cái)規(guī)劃師
美國(guó)注冊(cè)會(huì)計(jì)師
一級(jí)建造師
安全工程師
設(shè)備監(jiān)理師
公路監(jiān)理師
公路造價(jià)師
二級(jí)建造師
招標(biāo)師考試
物業(yè)管理師
電氣工程師
建筑師考試
造價(jià)工程師
注冊(cè)測(cè)繪師
質(zhì)量工程師
巖土工程師
造價(jià)員考試
注冊(cè)計(jì)量師
環(huán)保工程師
化工工程師
咨詢工程師
結(jié)構(gòu)工程師
城市規(guī)劃師
材料員考試
監(jiān)理工程師
房地產(chǎn)估價(jià)
土地估價(jià)師
安全評(píng)價(jià)師
房地產(chǎn)經(jīng)紀(jì)人
投資項(xiàng)目管理師
環(huán)境影響評(píng)價(jià)師
土地登記代理人
繽紛校園 實(shí)用文檔 英語(yǔ)學(xué)習(xí) 作文大全 求職招聘 論文下載 訪談|游戲
軟件水平考試
軟件水平考試資訊
軟件水平考試試題
軟件水平考試專項(xiàng)輔導(dǎo)
軟件水平考試交流互動(dòng)
軟件水平考試交流互動(dòng)
您現(xiàn)在的位置: 考試吧 > 軟件水平考試 > 心得技巧 > 正文

2012《軟件設(shè)計(jì)師》備考:C++編程易范錯(cuò)誤集合

為了幫助2012年參加軟件水平考試的朋友更好的備考2012年軟件水平考試,考試吧軟件水平考試頻道為大家整理“2012《軟件設(shè)計(jì)師》備考:C++編程易范錯(cuò)誤集合”,供大家參考。

  這個(gè)含義的多重性能導(dǎo)致一些難以發(fā)現(xiàn)的錯(cuò)誤:

  // copy a string from pSource to pTarget -- incorrect version.

  while(pSource)

  {

  *pTarget++ = *pSource++;

  }

  此例中的while循環(huán)試圖把由pSource指向的源字符串復(fù)制到由pTarget指向的內(nèi)存塊。但不幸的是,條件寫錯(cuò)了,它應(yīng)這樣寫出:

  // copy a string from pSource to pTarget -- incorrect version.

  while(*pSource)

  {

  *pTarget++ = *pSource++;

  }

  你可以看到,當(dāng)由pSource指向的字符為NULL時(shí),終止條件出現(xiàn)。這是0的第四定義。然而,這里寫出的代碼卻是去查看地址pSource是否為零,這是第二定義。

  最終結(jié)果是while()循環(huán)繼續(xù)寫入內(nèi)存直到程序崩潰。

  0的其他定義之間也可能產(chǎn)生混亂。唯一的解決辦法就是當(dāng)你使用常數(shù)0的時(shí)候小心一點(diǎn)。

  聲明的混亂處

  復(fù)合聲明是非;靵y的,但C++--以它的熱忱保持了與C的反向兼容性--但也產(chǎn)生了一些聲明間的矛盾,你必須避免這種矛盾。

  class Myclass

  {

  public:

  Myclass(int nArg1 = 0,int nArg2 = 0);

  };

  Myclass mcA(1,2);

  Myclass mcB(1);

  Myclass mcC();

  mcA是參數(shù)1和2構(gòu)成的對(duì)象,而mcB是參數(shù)1和0構(gòu)成的對(duì)象。因此你可能認(rèn)為mcC是參數(shù)0和0構(gòu)成的對(duì)象,然而情況不是這樣。而mcC()是一個(gè)不帶參數(shù)的函數(shù),它用數(shù)值返回類Myclass的對(duì)象。

  另一個(gè)混亂產(chǎn)生于初始化運(yùn)算符=的使用:

  Myclass mcB = nA; // same as Myclass mcB(nA)

  為了增強(qiáng)與C的兼容性,答應(yīng)這樣使用=;然而你應(yīng)該避免這種結(jié)構(gòu),因?yàn)樗皇且回炦m用的。例如下列程序就不會(huì)有預(yù)期的效果:

  Myclass mcA = nA,nB;

  這說(shuō)明一個(gè)對(duì)象mcA(nA),它后面有一個(gè)獨(dú)立的使用缺省構(gòu)造符的對(duì)象nB,而不是說(shuō)明一個(gè)對(duì)象mcA(nA,nB)。

  堅(jiān)持使用C++格式--這是最安全的。

  相關(guān)推薦:

  計(jì)算機(jī)技術(shù)與軟件專業(yè)技術(shù)資格(水平)考試官網(wǎng)匯總

  計(jì)算機(jī)軟件專業(yè)技術(shù)考試考場(chǎng)規(guī)則(筆試)

  軟件水平考試考前必讀:軟考應(yīng)試錦囊

  軟件水平考試考生必看:100天突破復(fù)習(xí)計(jì)劃

文章搜索
軟件水平考試欄目導(dǎo)航
版權(quán)聲明:如果軟件水平考試網(wǎng)所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請(qǐng)與我們聯(lián)系800@exam8.com,我們將會(huì)及時(shí)處理。如轉(zhuǎn)載本軟件水平考試網(wǎng)內(nèi)容,請(qǐng)注明出處。