C++类模板与函数模板区别

C++类模板与函数模板区别

类模板与函数模板区别主要有两点:
1.类模板没有自动类型推导的使用方式
2.类模板在模板参数列表中可以有默认参数
代码示例:

#include<iostream>
#include<string>
using namespace std;
//类模板与函数模板区别主要有两点:
template<class NameType,class AgeType=int>//年龄设置默认整形
class Person
{
    
    
public:
       Person(NameType name,AgeType age)
       {
    
    
              this->m_Name = name;
              this->m_Age = age;
       }
       void showPerson()
       {
    
    
              cout << "name:" << this->m_Name << " age=" << this->m_Age << endl;
       }
       NameType m_Name;
       AgeType m_Age;
};
//1.类模板没有自动类型推导的使用方式
void test01()
{
    
    
       //Person p("孙悟空",1000);错误,无法用自动类型推导
       Person<string, int>p("孙悟空", 1000);//正确,只能显示指定类型
       p.showPerson();
}
//2.类模板在模板参数列表中可以有默认参数
void test02()
{
    
    
       //Person p("孙悟空",1000);错误,无法用自动类型推导
       Person<string, int>p("猪八戒", 999);//正确,只能显示指定类型
       p.showPerson();
}
int main()
{
    
    
       test01();
       test02();
       return 0;
}

总结:
*
类模板使用只能显示指定类型方式
*
类模板中的模板参数列表可以有默认参数

猜你喜欢

转载自blog.csdn.net/gyqailxj/article/details/114032115