天天看點

類模闆與函數模闆差別

類模闆與函數模闆差別主要有兩點

  1. 類模闆沒有自動類型推導的使用方式
  2. 類模闆在模闆參數清單中可以有預設參數

測試代碼

#include <iostream>
#include <string>

using namespace std;
#include <string>
//類模闆
template<class NameType, class AgeType = int>
class Person
{
public:
	Person(NameType name, AgeType age)
	{
		this->mName = name;
		this->mAge = age;
	}
	void showPerson()
	{
		cout << "name: " << this->mName << " age: " << this->mAge << endl;
	}
public:
	NameType mName;
	AgeType mAge;
};

//1、類模闆沒有自動類型推導的使用方式
void test01()
{
	// Person p("孫悟空", 1000); // 錯誤 類模闆使用時候,不可以用自動類型推導
	Person <string, int>p("孫悟空", 1000); //必須使用顯示指定類型的方式,使用類模闆
	p.showPerson();
}

//2、類模闆在模闆參數清單中可以有預設參數
void test02()
{
	Person <string> p("豬八戒", 999); //類模闆中的模闆參數清單 可以指定預設參數
	p.showPerson();
}

int main() {

	test01();

	test02();

	system("pause");

	return 0;
}
           

測試結果

類模闆與函數模闆差別

總結

  • 類模闆使用隻能用顯示指定類型方式
  • 類模闆中的模闆參數清單可以有預設參數

繼續閱讀