首頁(yè)考試吧論壇Exam8視線(xiàn)考試商城網(wǎng)絡(luò)課程模擬考試考友錄實(shí)用文檔求職招聘論文下載
2013中考
法律碩士
2013高考
MBA考試
2013考研
MPA考試
在職研
中科院
考研培訓(xùn) 自學(xué)考試 成人高考
四 六 級(jí)
GRE考試
攻碩英語(yǔ)
零起點(diǎn)日語(yǔ)
職稱(chēng)英語(yǔ)
口譯筆譯
申碩英語(yǔ)
零起點(diǎn)韓語(yǔ)
商務(wù)英語(yǔ)
日語(yǔ)等級(jí)
GMAT考試
公共英語(yǔ)
職稱(chēng)日語(yǔ)
新概念英語(yǔ)
專(zhuān)四專(zhuān)八
博思考試
零起點(diǎn)英語(yǔ)
托?荚
托業(yè)考試
零起點(diǎn)法語(yǔ)
雅思考試
成人英語(yǔ)三級(jí)
零起點(diǎn)德語(yǔ)
等級(jí)考試
華為認(rèn)證
水平考試
Java認(rèn)證
職稱(chēng)計(jì)算機(jī) 微軟認(rèn)證 思科認(rèn)證 Oracle認(rèn)證 Linux認(rèn)證
公 務(wù) 員
導(dǎo)游考試
物 流 師
出版資格
單 證 員
報(bào) 關(guān) 員
外 銷(xiāo) 員
價(jià)格鑒證
網(wǎng)絡(luò)編輯
駕 駛 員
報(bào)檢員
法律顧問(wèn)
管理咨詢(xún)
企業(yè)培訓(xùn)
社會(huì)工作者
銀行從業(yè)
教師資格
營(yíng)養(yǎng)師
保險(xiǎn)從業(yè)
普 通 話(huà)
證券從業(yè)
跟 單 員
秘書(shū)資格
電子商務(wù)
期貨考試
國(guó)際商務(wù)
心理咨詢(xún)
營(yíng) 銷(xiāo) 師
司法考試
國(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ì)職稱(chēng)
法律顧問(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)保工程師
化工工程師
咨詢(xú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í) 作文大全 求職招聘 論文下載 訪(fǎng)談|游戲
軟件水平考試
軟件水平考試資訊
軟件水平考試試題
軟件水平考試專(zhuān)項(xiàng)輔導(dǎo)
軟件水平考試交流互動(dòng)
軟件水平考試交流互動(dòng)
您現(xiàn)在的位置: 考試吧 > 軟件水平考試 > 心得技巧 > 正文

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

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

  計(jì)算順序混亂

  C和C++運(yùn)算符的先后順序,使你能夠知道怎樣計(jì)算諸如下列表達(dá)式:

  a = b * c + d;

  然而先后次序不會(huì)影響子表達(dá)式的計(jì)算順序。讓我們以看上去不重要的方式改變示例的表達(dá)式:

  a = b() * c() + d();

  現(xiàn)在的問(wèn)題是,在這個(gè)表達(dá)式中以什么樣的順序調(diào)用函數(shù)b(),c()和d()?答案是,順序是完全不確定的。更糟的是,順序不能借助圓括號(hào)的使用而確定。所以下列表達(dá)式?jīng)]有作用:

  a = (b() * c()) + d();

  函數(shù)計(jì)算順序通常不值得去關(guān)心。然而,假如這些函數(shù)有副作用,以某種方式彼此影響(稱(chēng)為相互副作用),那么順序就是重要的了。例如,假如這些函數(shù)改變相同的全局變量,則結(jié)果就是不同的,這取決于其中函數(shù)被調(diào)用的順序。

  甚至當(dāng)不涉及函數(shù)調(diào)用時(shí),相互副作用也會(huì)產(chǎn)生影響:

  int nI = 0;

  cout《“nA[0]=”<這個(gè)表達(dá)式的問(wèn)題是單個(gè)表達(dá)式包含有相互副作用的兩個(gè)子表達(dá)式--變量nI是增量。哪個(gè)nA[nI++]首先被執(zhí)行,左邊的nA[nI++]還是右邊的nA[nI++]?沒(méi)法說(shuō),上述代碼可能會(huì)以預(yù)期的方式工作,但也可能不會(huì)。

  說(shuō)明虛擬成員函數(shù)

  為了在子類(lèi)中重載虛擬成員函數(shù),必須用和基本類(lèi)中函數(shù)一樣的形式說(shuō)明子類(lèi)中函數(shù)的參數(shù)和返回類(lèi)型。這并不總是清楚的。例如,下列代碼似乎講得通:

  class Base

  {

  public:

  virtual void AFunc(Base *pB);

  };

  class Subclass:public Base

  {

  public:

  virtual void AFunc(Subclass *pS);

  };

  這個(gè)代碼會(huì)編譯通過(guò),但不會(huì)有遲后聯(lián)編。函數(shù)Base::AFunc()的參數(shù)是Base*類(lèi)型的,而函數(shù)Subclass::AFunc()的參數(shù)是Subclass*,它們是不同的。

  這個(gè)規(guī)則的唯一例外是下面的例子,它符合ANSI C++標(biāo)準(zhǔn):

  class Base

  {

  public:

  virtual void Base* AFunc();

  };

  class Subclass:public Base

  {

  public:

  virtual void Subclass* AFunc();

  };

  在此例中,每個(gè)函數(shù)返回其固有類(lèi)型對(duì)象的地址。這種技術(shù)很通用,所以標(biāo)準(zhǔn)委員會(huì)決定承認(rèn)它。

  相關(guān)推薦:

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

  計(jì)算機(jī)軟件專(zhuān)業(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)注明出處。