內聯函式,引用變數,函式模板,列舉

2022-08-23 09:57:12 字數 1240 閱讀 8056

1. 內聯函式

內聯函式的編譯**和其它程式**內聯起來了,編譯器將使用相應的函式**代替函式呼叫,對於內聯**,函式無需跳轉到另乙個位置執行**,再跳回來,因此,內聯函式的執行速度比其它函式稍快,但是代價是需要占用更多的記憶體,如果程式需要在10個不同的地方呼叫同乙個內聯函式,該程式將包含該**的10個副本。

如果執行函式**的時間比處理函式呼叫的機制時間長,則節省的時間只佔整個過程的很小的一部分,如果**執行時間很短,內聯呼叫就可以節省非內聯呼叫使用的大部分時間,由於過程非常快,因此節省了該過程的大部分時間。

要使用內聯函式:

在函式宣告前加入關鍵字inline,在函式定義前加上關鍵字inline

程式設計師請求呼叫內聯函式的時候,編譯器不一定會滿足這種要求,它可能認為該函式過大或者注意到函式呼叫了自己(內聯不能遞迴),因此不能將其作為內聯函式

2. 引用變數

c++引用了一種新的復合型別,必須在宣告引用變數時初始化

b. 引用作為函式引數:c語言除了指標只能按值傳遞,c++的引用突破了這種限制

3. 函式模板

c++的編譯器增加了乙個新特性,函式模板,可以使用泛型來定義函式,其中的泛型可以使用具體的型別(如int或者double)替換,通過將型別傳遞給模板,可以使編譯器生成該型別的函式。

template 或者template

在c++98新增關鍵字typename之前,c++使用關鍵字class來建立模板

4. 列舉

作用域內的列舉:

傳統的列舉存在一定的問題,其中之一是兩個列舉定義的列舉量可能發生衝突。

enum egg ;

enum t_shirt ;

於是c++提供了一種新的列舉,將列舉的作用域定義為類

注意:作用域內的列舉不能隱式的轉化成整型。

函式模板和模板函式 引用

1.函式模板的宣告和模板函式的生成 1.1函式模板的宣告 函式模板可以用來建立乙個通用的函式,以支援多種不同的形參,避免過載函式的函式體重複設計。它的最大特點是把函式使用的資料型別作為引數。函式模板的宣告形式為 template 返回型別 函式名 參數列 其中,template是 定義模板函式的關鍵...

過載引用引數 函式模板

void sink double r1 matches modifiable lvalue void sank const double r2 matches modifiable or const lvalue,rvalue void sunk double r3 matches rvalue 左...

C 內聯函式和引用變數

內聯函式和普通函式的使用方法沒有本質區別,我們來看乙個例子,下面展示了內聯函式的使用方法 include using namespace std 下面展示內聯函式的使用 inline double square doublex intmain 從上面我們可以看到我們定義乙個內聯函式只需要在普通函式的...