首頁考試吧論壇Exam8視線考試商城網(wǎng)絡(luò)課程模擬考試考友錄實(shí)用文檔求職招聘論文下載
2013中考
法律碩士
2013高考
MBA考試
2013考研
MPA考試
在職研
中科院
考研培訓(xùn) 自學(xué)考試 成人高考
四 六 級
GRE考試
攻碩英語
零起點(diǎn)日語
職稱英語
口譯筆譯
申碩英語
零起點(diǎn)韓語
商務(wù)英語
日語等級
GMAT考試
公共英語
職稱日語
新概念英語
專四專八
博思考試
零起點(diǎn)英語
托福考試
托業(yè)考試
零起點(diǎn)法語
雅思考試
成人英語三級
零起點(diǎn)德語
等級考試
華為認(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)檢員
法律顧問
管理咨詢
企業(yè)培訓(xùn)
社會(huì)工作者
銀行從業(yè)
教師資格
營養(yǎng)師
保險(xiǎn)從業(yè)
普 通 話
證券從業(yè)
跟 單 員
秘書資格
電子商務(wù)
期貨考試
國際商務(wù)
心理咨詢
營 銷 師
司法考試
國際貨運(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ì)職稱
法律顧問
ACCA考試
注冊會(huì)計(jì)師
資產(chǎn)評估師
審計(jì)師考試
高級會(huì)計(jì)師
注冊稅務(wù)師
國際內(nèi)審師
理財(cái)規(guī)劃師
美國注冊會(huì)計(jì)師
一級建造師
安全工程師
設(shè)備監(jiān)理師
公路監(jiān)理師
公路造價(jià)師
二級建造師
招標(biāo)師考試
物業(yè)管理師
電氣工程師
建筑師考試
造價(jià)工程師
注冊測繪師
質(zhì)量工程師
巖土工程師
造價(jià)員考試
注冊計(jì)量師
環(huán)保工程師
化工工程師
咨詢工程師
結(jié)構(gòu)工程師
城市規(guī)劃師
材料員考試
監(jiān)理工程師
房地產(chǎn)估價(jià)
土地估價(jià)師
安全評價(jià)師
房地產(chǎn)經(jīng)紀(jì)人
投資項(xiàng)目管理師
環(huán)境影響評價(jià)師
土地登記代理人
繽紛校園 實(shí)用文檔 英語學(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òu)造函數(shù)內(nèi)調(diào)用虛擬成員函數(shù)

  從構(gòu)造符內(nèi)調(diào)用虛擬函數(shù)是前期聯(lián)編的,這樣,它就短路掉了那些原本可能的簡潔的能力:

  class Base

  {

  public:

  Base();

  virtual void BuildSection();

  };

  class Subclass:public Base

  {

  public:

  Subclass();

  virtual void BuildSection();

  };

  Base::Base()

  {

  BuildSection();

  };

  在此例中,程序員希望構(gòu)造函數(shù)能夠多態(tài)地調(diào)用BuildSection(),當(dāng)正在構(gòu)造的對象是Base對象時(shí)調(diào)用Base::BuildSection(),當(dāng)對象是類Subclass對象時(shí)調(diào)用Subclass::BuildSection()。

  由于下列簡單的原因這個(gè)例子不起作用:當(dāng)調(diào)用BuildSection()完成時(shí),正在構(gòu)造的對象僅僅是一個(gè)Base對象。即使對象最終成為Subclass對象,也要等到Subclass的構(gòu)造函數(shù)把它過一遍以后。在這些情況下調(diào)用Subclass::BuildSection()可能是致命的。即使對象將最終成為Subclass對象,但在調(diào)用BuildSection()的時(shí)候,對象只不過是Base對象,而且,這個(gè)調(diào)用必須要前期聯(lián)編到函數(shù)Base::BuildSection()。

  指針對準(zhǔn)

  當(dāng)你在80x86處理器(例如,你的PC機(jī)的芯片)上執(zhí)行你的程序時(shí),這個(gè)問題不是致命的,但對其他的絕大多數(shù)芯片來說,這就是致命的了。它還會(huì)對你的應(yīng)用程序移植到某個(gè)其他環(huán)境的能力產(chǎn)生影響。此外,甚至對于Intel 處理器來說,這個(gè)問題也將導(dǎo)致低于標(biāo)準(zhǔn)的性能。

  當(dāng)你的指針從一種類型轉(zhuǎn)換到另一種類型的時(shí)候,就有可能產(chǎn)生一個(gè)非對準(zhǔn)指針(misaligned pointer)。處理器一般要求內(nèi)存塊的地址要與一個(gè)和這個(gè)內(nèi)存塊的尺寸匹配的邊界對齊。例如,字只能在字邊界上被訪問(地址是二的倍數(shù)),雙字只能在雙字邊界上被訪問(地址是四的倍數(shù)),依次類推。

  編譯器通常確保監(jiān)視這個(gè)規(guī)則。但是當(dāng)你的指針類型從一種類型轉(zhuǎn)換成較大類型時(shí),你就可以很輕易地違反這個(gè)規(guī)則:

  char cA;

  char* pC = &cA;

  int* pI;

  pI = (int*)pC;

  *pI = 0; // this may be fatal.

  因?yàn)樽址麅H僅是一個(gè)字節(jié)長,所以地址&cA可能有任意值,包括奇數(shù)值?墒牵琾I應(yīng)只包含四的倍數(shù)的地址。通過轉(zhuǎn)換,答應(yīng)把pC賦給pI,但是假如地址不是四的倍數(shù),則接著發(fā)生的賦值可能使程序崩潰。

  對于Intel處理器來說,甚至當(dāng)pC值為奇數(shù)時(shí),該賦值也不是致命的;雖然占用的時(shí)間要長得多,但是賦值還是能夠正常執(zhí)行。請你謹(jǐn)防非對準(zhǔn)指針。

  這種情況只在你正在把你的指針從指向一種類型轉(zhuǎn)換成指向較大類型時(shí)才會(huì)出現(xiàn)。

上一頁  1 2 3 4 5 6 7  下一頁
  相關(guān)推薦:

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

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

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

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

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