1. 程式人生 > 其它 >網絡卡繫結bond0的實現

網絡卡繫結bond0的實現

1、由於變數初始化時會忽略頂層const,函式引數也是如此,因此,void f(int i)和void f(const int i),是兩個相同的函式,並不構成過載。

2、把函式不會改變的形參定義成(普通的)引用是一種比較常見的錯誤,這麼做帶給函式的呼叫者一種誤導,即函式可以修改它的實參的值。此外,使用引用而非常量引用也會極大的限制函式所能接受的實參型別,我們不能把cosnt引用、字面值或者需要型別轉換的物件傳遞給普通的引用形參。

 3、陣列作為引數,陣列不能被拷貝,陣列會轉換成指標,一下三個函式是等價的:void print(const int *);void print(const int[]);void print(const int[10]);這三個函式的引數都是const int*,其中第三個函式的引數表示期望陣列的大小是10,但實際不一定是10,使用引數時只會檢查該引數的型別是不是const int*。

4、當引數型別相同,數量不確定時,可使用initializer_list型別作為函式引數,initializer_list中的元素永遠是常量,我們無法改變它們的值。如果想向形參initializer_list中傳遞一個值的序列,則必須把序列放在一對花括號內。

5、省略符形參應該僅僅用於C和C++通用的型別。特別應該注意的是,大多數類型別的物件在傳遞給省略符形參時都無法正確拷貝。

6、返回一個值的方式和初始化一個變數或形參的方式完全一樣:返回的值用於初始化呼叫點的一個臨時量,該臨時量就是函式呼叫的結果。

7、不要返回區域性物件的引用或指標。函式完成後,它所佔用的儲存控制元件也隨之被釋放掉。因此,函式終止意味著區域性變數的引用將指向不再有效的記憶體區域。

8、呼叫一個返回引用的函式返回左值,其他型別返回右值。

9、如果想定義一個返回陣列指標的函式,那麼需要在函式名字後面的形參列表後面加上陣列的維度,形式如下所示:Type (*function(parameter_list))[dimention];。

10、可以使用尾置返回型別制定函式的返回型別,形如:auto function(parameter_list)->int (*)[10];。

11、main函式不能過載不能遞迴。