天天看點

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;
}
           

總結:

*

類模闆使用隻能顯示指定類型方式

*

類模闆中的模闆參數清單可以有預設參數

繼續閱讀