天天看點

C++函數模闆(function template)詳解函數模闆(function template)

函數模闆(function template)

函數模闆:

1.建立通用的函數,函數的類型和形參的類型不用指定,而用一個虛拟的類型來代表。将資料類型參數化。

2.凡是函數體相同的多個函數都可以使用函數模闆。

有以下重載函數:

int     Max(int, int, int);
float   Max(float, float, float);
double 	Max(double, double, double);
           

建立一種模闆:

函數模闆的聲明:

template<typename _Ty1>  //這個_Ty1就是虛拟類型
template<class_Ty2>  	//類模闆
           

函數模闆的定義:

_Ty1 Max(_Ty1 a, _Ty1 b, _Ty1 c)
{
	if (c > a)a = c;
	if (b > a)a = b;
	return a;
}
           

函數的調用:

int x=10, y=15, z=20;
int max = Max(x, y, z);
cout << max << endl;

float x1 = 10.2,  y1= 15.6,  z1 = 20.8;
float max1 = Max(x1, y1, z1);
cout << max1 << endl;

double x2 = 0.2,  y2 = 5.6,  z2 = 2.8;
double max2 = Max(x2, y2, z2);
cout << max2 << endl;
           

參數化:

将具體的資料,做成參數,去解決不同資料的問題。

将具體的資料類型,做成參數,去解決不同資料類型的問題。

參數化,是軟體開發過程中必須具有的一種思維模式。它提出将各種相同的資料用參數來代替,實際使用的過程中,我們隻需要将具體的資料或者類型帶入到參數中即可。

繼續閱讀