C 深度剖析教程36 深入理解函式模板

2021-08-19 11:59:03 字數 1415 閱讀 2015

編譯器從函式模板通過具體型別產生不同的函式

編譯器會對函式模板進行兩次編譯

*對模板進行編譯

*對引數替換後的函式進行編譯

注意事項:

函式模板本身不允許隱式型別轉換

#include 

#include

using

namespace

std;

class test

};template

< typename t >

void swap(t& a, t& b)

typedef

void(funci)(int&, int&);

typedef

void(funcd)(double&, double&);

typedef

void(funct)(test&, test&);

int main()

函式模板可以定義任意多個不同型別的引數

對於多引數模板

*無法自動推倒函式的返回值型別

*可以從左向右部分指定型別引數

工程中將返回值引數作為第乙個型別引數

#include 

#include

using

namespace

std;

template

< typename t1, typename t2, typename t3 >

t1 add(t2 a, t3 b)

int main()

當函式過載遇上函式模板會發生什麼?

函式模板可以像普通函式一樣被過載:

#include 

#include

using

namespace

std;

template

< typename t >

t max(t a, t b)

int max(int a, int b)

template

< typename t >

t max(t a, t b, t c)

int main()

函式模板通過具體的引數型別匹配不同的函式

函式模板可以定義任意多個不同的型別引數

函式模板中函式發的返回值型別必須顯示指定

函式模板可以像普通函式一樣被過載

深入理解函式

第五章 深入理解函式 1.return語句 有返回值的函式中,return語句的作用式提供整個函式的返回值,並結束當前函式返回到呼叫它的地方。在沒有返回值的函式中也可以使用return語句,例如當前檢查到乙個錯誤時提前結束當前函式的執行並返回 這個函式首先檢查引數x是否大於0,如果x不大於0就列印錯...

深度學習筆記 深入理解啟用函式

四 小結 建議 本文將圍繞啟用函式的定義 作用 分類 函式影象 導數影象 梯度 及啟用函式各自的優缺點等等方面展開敘述。神經網路中的每個神經元節點接受上一層神經元的輸出值作為本神經元的輸入值,並將輸入值傳遞給下一層,輸入層神經元節點會將輸入屬性值直接傳遞給下一層 隱層或輸出層 在多層神經網路中,上層...

C 類函式深入理解

先看一段 class a void print const int main int argc,const char argv 執行結果 a print 0x100000eb0 print enter.this 0x0 a v 1 空指標 那麼問題來了。一般情況下,a null,為空指標,訪問a都是...