#include <iostream>
#include <string>
using namespace std;
/************************************************************************/
/* 函数模板和类模板的区别
1.类模板没有自动类型推导使用方式,函数模板可以
2.类模板参数列表中可以有默认参数,函数模板不可以
/************************************************************************/
template<class NameType, class AgeType=int>
class Person{
public:
Person(NameType name, AgeType age)
{
this->m_Name = name;
this->m_Age = age;
}
void show_value()
{
cout<<"name:"<<m_Name<<endl;
cout<<"age:"<<m_Age<<endl;
}
NameType m_Name;
AgeType m_Age;
};
void test1()
{
//Person per("zhangsan", 22); //error 类模板没有自动类型推导方式
Person<string, int> per("zhangsan", 99);//需要指定类模板参数列表,类型参数化
per.show_value();
Person<string> per1("zhangsan", 100); //类模板参数列表中可以有指定默认参数,参数类型默认值
per1.show_value();
}
int main()
{
test1();
return 0;
}
C++ 类模板与函数模板
最新推荐文章于 2024-07-25 19:27:45 发布