void sink(double & r1); matches modifiable lvalue
void sank(const double & r2) ; matches modifiable or const lvalue, rvalue
void sunk(double && r3); matches rvalue
左值引用引數r1與可修改的左值引數(如double變數)匹配;const左值引用引數r2與可修改的左值引數、const左值引數和右值引數(如兩個double值的和)匹配;最後,左值引用引數r3與右值匹配。
函式模板
函式模板是通用的函式描述,也就是說,它們使用泛型定義函式,其中的泛型可用具體的型別替換。通過將型別作為引數傳遞給模板,可使編譯器生成該型別的函式。
例如:建立乙個交換模板;
template
void swap(anytype &a, anytype &b)
顯示具體化
struct job
下面是用於交換job結構的非模板函式,模板函式和具體化的原型:
void swap(t &, t&);
template
void swap(t &, t &);
template <> void swap(job &, job &);
例項化和具體化
顯示例項化可以直接命令編譯器建立特定的例項,如swap()。其語法如下:
template void swap(int, int);
顯示具體化有下面兩個等價的宣告之一
template <> void swap(int &, int &);
template <> void swap(int &, int &);
C 函式預設引數, 函式過載, 函式模板
一 c 函式預設引數 注意一下幾點就可以 1 預設引數的指定在函式的宣告,並不是在定義 2 必須從右到左新增預設引數,即要為某個引數設定預設值,則必須為它 右邊的所有引數提供預設值 預設函式引數 includeusing std cin using std cout using std endl i...
函式模板和模板函式 引用
1.函式模板的宣告和模板函式的生成 1.1函式模板的宣告 函式模板可以用來建立乙個通用的函式,以支援多種不同的形參,避免過載函式的函式體重複設計。它的最大特點是把函式使用的資料型別作為引數。函式模板的宣告形式為 template 返回型別 函式名 參數列 其中,template是 定義模板函式的關鍵...
函式過載與函式模板
函式過載與函式模板 在我們要實現類似的函式功能時,但他們的資料型別或者個數不一樣,這時就需要用到函式過載 求3個數中最大的數 分別考慮整數 雙精度數 長整數的情況 include using namespace std int main int max int a,int b,int c 定義求3個...