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;
}
總結:
*
類模闆使用隻能顯示指定類型方式
*
類模闆中的模闆參數清單可以有預設參數