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

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

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

  計算順序混亂

  C和C++運算符的先后順序,使你能夠知道怎樣計算諸如下列表達式:

  a = b * c + d;

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

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

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

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

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

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

  int nI = 0;

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

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

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

  class Base

  {

  public:

  virtual void AFunc(Base *pB);

  };

  class Subclass:public Base

  {

  public:

  virtual void AFunc(Subclass *pS);

  };

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

  這個規(guī)則的唯一例外是下面的例子,它符合ANSI C++標準:

  class Base

  {

  public:

  virtual void Base* AFunc();

  };

  class Subclass:public Base

  {

  public:

  virtual void Subclass* AFunc();

  };

  在此例中,每個函數(shù)返回其固有類型對象的地址。這種技術(shù)很通用,所以標準委員會決定承認它。

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

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

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

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

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

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