标签:
模板以template关键字和一个形参表开头
参数至少是有一个模板类型
1 #include <iostream> 2 using namespace std; 3 4 //T通用数据类型 5 template <typename T> 6 T MAX(T *p, const int n) 7 { 8 T maxdata(p[0]); 9 10 for (int i = 0; i < n; i++) 11 { 12 if (maxdata < p[i]) 13 { 14 maxdata = p[i]; 15 } 16 } 17 18 return maxdata; 19 } 20 21 void main() 22 { 23 int a[10] = { 1,2,3,4,5,6,7,8,9,10 }; 24 double b[10] = { 1,2,3,4,5,6,7,8,9,10 }; 25 26 std::cout << MAX(a, 10) << std::endl; 27 std::cout << MAX(b, 10) << std::endl; 28 29 system("pause"); 30 }
函数参数不允许使用自动变量
//error C3533: 参数不能为包含“auto”的类型
1 #include <iostream> 2 using namespace std; 3 4 int putnum(auto num)//error C3533: 参数不能为包含“auto”的类型 5 { 6 7 } 8 9 void main() 10 { 11 12 system("pause"); 13 }
函数模板中可以使用inline
1 #include <iostream> 2 using namespace std; 3 4 template <class T> 5 inline T getX3(T x) 6 { 7 return x*x*x; 8 } 9 10 void main() 11 { 12 std::cout << getX3(1 + 2) << std::endl;//27 13 14 system("pause"); 15 }
标签:
原文地址:http://www.cnblogs.com/denggelin/p/5648632.html