1. 表示式只計算,拋棄計算結果;
2. 空語句什麼也不做;
3.switch case語句漏寫break,將會從匹配到的情況開始執行,直到語句結束
4. 形參、實參、區域性變數、靜態區域性變數
所謂形參就是佔位之用,在函式開始時申請空間,並由傳入實參進行例項化(也可稱拷貝構造)。一般是區域性的,即只能在函式體內可見。
實參用來例項化/初始化形參
區域性變數的作用域是函式體或者語句內部,但是加上static修飾就變成了靜態區域性變數,它作用域還是該函式體,但生命期延長到了程式終止。
5. 函式返回值,還是發生了拷貝,即用函式體內的某變數初始化函式呼叫點的某臨時量。
6. 不要返回區域性變數的引用或指標,返回後就銷毀了,沒地兒去找了。
7. 引用返回左值,其他型別返回的是右值。
8. 內聯函式適用於優化規模較小、流程直接、頻繁呼叫的函式。
9. 有趣的返回錯誤資訊的巨集(靜態變數)
void trouble(int(1)無參函式vs有參有預設值,歧義m)}
int(2)傳值vs傳引用,歧義get()
intget(int a = 5
)//呼叫get()
int(3)引數存在隱式型別轉換,歧義get(int
a)int
get(int &a)
//int m = 10;
//呼叫get(m)
int get(int m)參考資料long get(long m)
//double m = 10.123
//呼叫get(m)
(有點問題)
(有點問題)
再探函式引數
c函式的所有引數均以 傳值呼叫 方式進行傳遞。這意味著函式將獲得引數值的乙份拷貝,這樣函式可以放心修改這個拷貝值,而不必擔心會修改呼叫程式實際傳遞給它的引數。普通資料型別主要包括 如下面 所示 include void swap int x int y int main 我們原本是希望編寫乙個函式,...
建構函式再探
建構函式基礎知識 建構函式初始值列表 初始化與賦值 建構函式使用初始值列表還是在函式體中給資料賦值的區別在於,前者是初始化了它的資料成員,後者是對資料成員執行了賦值操作。在很多類中,初始化和賦值的區別事關底層效率問題 前者直接初始化資料成員,後者則先初始化再賦值。除了效率外更重要的是,一些資料成員必...
7 5 建構函式再探
目錄7.5.2 委託建構函式 7.5.3 隱式的類型別轉換 7.5.4 類的靜態成員 觀察下面兩段建構函式的 初始化bookno,units sold,revenue sale data const string s,unsigned cnt,double price bookno s units ...