1. 程式人生 > >C++易錯點總結

C++易錯點總結

返回值 oat 相對 變量 不堪 法規 內容 c++ 默認參數

在眾多編程語言中,C++語法規則是相對較為復雜的,其繼承和重載規則靈活多變,往往會讓初學這苦惱不堪,下面對於C++的一些易錯點進行的總結,希望有所幫助,本文章會持續更新。

  • 函數重載與默認參數的二義性

在函數重載中,主要通過參數類型的不同來重載,而不能通過返回值不同來重載。在函數的參數缺省值的設置中要註意不要和函數重載弄混,比如:

void output( int x);
void output( int x, float y=0.0);

這樣就有二義行,如果有函數調用output(a)(a在這裏為一×××數)時,不知道該調用哪個,產生錯誤!

  • int和unsigned int的溢出問題

在編程過程中,盡量使用int數據類型,而不用unsigned int類型,即使所要表達的內容沒有負數,如:ID號、統計計數等。

  • C++賦值和初始化

C++中,初始化和賦值是兩種不同的操作。並且直接初始化int val(100);和復制初始化int val=100;也是兩個不同的概念,直接初始化效率更高。

  • 變量重名

局部變量與全局變量同名,則局部變量在其作用域範圍內屏蔽全局變量。這種錯誤非常隱蔽,非常難於排查,切記!切記!切記!

  • 引用必須初始化

引用必須初始化,初始化後就不可更改。

C++易錯點總結