🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] # 类中的数据类型参数化 类模板就是把类中的数据类型参数化 ~~~ template<class NameType, class AgeType> class Maker { public: Maker(NameType name, AgeType age) { this->name = name; this->age = age; } void printMaker() { cout << "name: " << this->name << " age: " << this->age << endl; } public: NameType name; AgeType age; }; void test02() { //类模板这边要加上<>这个 //类模板不会自动推导数据类型,要显示的告诉编译器是什么类型,函数模板会推导 //注意传入的类型,需要自己把握 Maker<string, int> m("悟空", 18); m.printMaker(); } ~~~ # 默认参数类型 ~~~ //从默认类型的泛型开始,后面的如果要定义都必须要有默认类型 template<class NameType, class AgeType=int> class Maker { public: Maker(NameType name, AgeType age) { this->name = name; this->age = age; } void printMaker() { cout << "name: " << this->name << " age: " << this->age << endl; } public: NameType name; AgeType age; }; void test02() { //如果有默认类型,这边可以少写一个 Maker<string> m("悟空", 18); m.printMaker(); //以传入的类型为准 Maker<string, double> m2("x", 17.7); m2.printMaker(); } ~~~