三種方式:ios
1.指定傳入的類型(這種最經常使用)this
2.參數模板化spa
3.整個類模板化code
#include<iostream> using namespace std; template<class T1,class T2> class Person { public: T1 name; T2 age; Person(T1 name, T2 age) { this->name = name; this->age = age; } void show() { cout << "姓名是:" << this->name << " " << "年齡是:" << this->age << endl; } }; //1.指定傳入類型 void printPerson1(Person<string, int>& p) { p.show(); } //2.參數模板化 template<class T1,class T2> void printPerson2(Person<T1,T2> &p) { cout << "T1的參數類型是:" << typeid(T1).name() << endl; cout << "T2的參數類型是:" << typeid(T2).name() << endl; p.show(); } //3.整個類模板化 template<class T> void printPerson3(T &p) { cout << "T的參數類型是:" << typeid(T).name() << endl; p.show(); } void test() { Person<string,int> p("tom", 12); printPerson1(p); printPerson2(p); printPerson3(p); } int main() { test(); system("pause"); return 0; }
輸出:blog