类模板与函数模板的区别
l类模板与函数模板的区别组要有以下两点:
1、类模板没有自动类型推导的使用方式;
2、类模板在模板参数列表中可以有默认参数;
1 #include<iostream> 2 using namespace std; 3 template<class nameType,class ageType=int>//ageType=int代表默认参数 4 class person 5 { 6 public: 7 person(nameType name, ageType age) 8 { 9 this->m_age = age; 10 this->m_name = name; 11 } 12 void showPerson() 13 { 14 cout << "name:" << this->m_name << endl; 15 cout << "age:" << this->m_age << endl; 16 } 17 nameType m_name; 18 ageType m_age; 19 }; 20 //1.类模板没有自动类型推导类型使用方式 21 void test01() 22 { 23 //person p("张三",18);//错误:无法使用自动类型推导 24 25 person<string, int>p1("豌豆射手",18);//正确:只能用显示类型指定方式 26 p1.showPerson(); 27 } 28 29 //2.类模板在模板参数列表中可以有默认参数 30 void test02() 31 { 32 person<string>p2("高坚果", 24);//另一个参数是int(默认参数) 33 p2.showPerson(); 34 } 35 36 37 int main() 38 { 39 test01(); 40 test02(); 41 system("pause"); 42 return 0; 43 }

类模板与函数模板
浙公网安备 33010602011771号