C++类模板与继承 类模板成员函数类外实现

1.当子类继承的父类是一个类模板时,子类在声明的时候,要指定出父类中T的类型

2.如果不指定,编译器无法给子类分配内存

1 template<class T>
2 class Base
3 {
4     T m;
5 };
6 //class Son:public Base   //错误 
7 class Son :public Base<int>
8 {
9 };

3.如果想灵活指定父类中T的类型,子类也需要变为类模板

 1 template<class T>
 2 class Base
 3 {
 4     T m;
 5 };
 6 template<class T1>
 7 class Son2 :public Base<T>
 8 {
 9     T1 obj;
10 };

  类模板成员函数类外实现:

 1 template<class T1,class T2>
 2 class Person
 3 {
 4 public:
 5     Person(T1 name, T2 age);
 6     void showPerson();
 7     T1 m_Name;
 8     T2 m_Age;
 9 };
10 //模板构造函数类外实现
11 template<class T1,class T2>
12 Person<T1, T2>::Person(T1 name, T2 age)
13 {
14     this->m_Name = name;
15     this->m_Age = age;
16 }
17 //模板成员函数类外实现
18 template<class T1,class T2>
19 void Person<T1, T2>::showPerson()
20 {
21 
22 }

posted on 2023-08-18 22:50  廿陆  阅读(65)  评论(0)    收藏  举报

导航