示例:
template//class==typename class Person{ public: Preson(nameType name,ageType age){//构造函数 this->name=name; this->age=age; } nameType name; ageType age; } void test01(){ Preson p1("YUANZIFAN",20); }
注意:类模板中的成员函数并不是一开始就创建的,是在调用时才去创建
●类模板对象可做函数的参数
三种方式:
1.指定传入类型(最长用)
fun01(Person
2.参数模板化
template
fun01(Person
3.整个类模板化
template< class T>
fun01(T &p)
●类模板与继承
1.当子类继承的父类是一个类模板时,子类在声明的时候,要指定在父类中T的类型,如果不指定,编译器无法给子类分配内存,如果想灵活指定出父类中T的类型,子类也需要变为类模板。
注:必须要知道父类中T的类型,才能继承给子类。
templateclass Person{ T m; }; //指定父类模板T为int型 class son1:public person { }; //灵活指定父类T类型,子类也需要变为类模板 template class son:public person { T2 obj; };
●类模板成员函数类外实现
实例:
//1.构造函数类外实现 templatePerson ::Person //2.成员函数 template void Person ::show(){ //niyaoshixiandedongxi }
1
2021 ↩︎



