类模板的继承比普通继承要多一个模板化
这是按照以前的思路继承,但是报错了,是因为编译器不清楚T什么类型,有两种情况解决
1.直接告诉T的类型
例如T是int类型
template<class T>
class father {
public:
T base;
};
class son :public father<int>{
};
在后面加上<int>即可,但是此方法不适用,因为大部分情况都不知道T是什类型,况且需要灵活多变的T的时候,这样太死板了,于是第二种发方法更加灵活
2. 用灵活的类型
template<class T>
class father {
public:
T base;
};
template<class T2>
class son :public father<T2>{
};
这里的T2是声父类中的T的类型
如果子类也模板化了,就将T2放最后面
class father {
public:
T base;
};
template<class T1,class T2>
class son :public father<T2>{
T1 a;
};
在实例化的时候,需要传入T1T2
son<int, char>s1;