1. C++程序设计模板 (关于template的解释)【以下内容摘自百度】
函数声明格式
template <class(或typename) any(或任意符合规则的名称)>(如果还有其他类型名,就用逗号隔开)
返回类型 函数名(形参表);
函数定义和声明格式基本相同,形参表要加上形参名,分号改为函数体。
声明的例子:
1 template <class type1, class type2> 2 type1 add(type1,type2); 3 template <class type1, class type2> 4 type1 add(type1 a,type2 b) 5 {return a + (type1)b;}
也可以直接定义函数,不声明。
说明: template是一个声明模板的关键字,表示声明一个模板关键字class不能省略,如果形参类型多于一个 ,每个形参前都要加class <类型 形参表>可以包含基本数据类型或类类。
1 #include <iostream> 2 using std::cout; 3 using std::endl; 4 //声明一个函数模版,用来比较输入的两个相同数据类型的参数的大小,class也可以被typename代替, 5 //T可以被名称字代替,只要符合命名规则即可。 6 template <class T> 7 T min(T& x,T& y) 8 { return(x<y)?x:y;} 9 int main( ) 10 { 11 int n1 = 2,n2 = 10; 12 double d1 = 1.5,d2 = 5.6; 13 cout<< "较小整数:"<<min(n1,n2)<<endl; 14 cout<< "较小实数:"<<min(d1,d2)<<endl; 15 system("PAUSE"); 16 return 0; 17 }
程序运行结果:
程序分析:main()函数中定义了两个整型变量n1 , n2 两个双精度类型变量d1 , d2然后调用min( n1, n2); 即实例化函数模板T min(T x, T y)其中T为int型,求出n1,n2中的最小值.同理调用min(d1,d2)时,求出d1,d2中的最小值.
2.