类模板与函数模板的区别

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 }
View Code

 

posted @ 2021-07-29 11:02  卿源  阅读(210)  评论(0)    收藏  举报