当类模板碰到继承时,需要注意以下几点:
1.当子类继承的父类是一个类模板时,子类在声明的时候,要指定出父类中T的数据类型
2.如果不指定,编译器无法给子类分配内存
3.如果想灵活指定出父类中T的类型,子类也需要变为类模板
示例:
#include<iostream>
using namespace std;
template<class T>
class Base
{
T m;
};
class Son :public Base<int>
{
};
template<class T >
class Base1
{
public:
Base1()
{
}
T m;
};
template<class T1,class T2>
class Son1 :public Base1<T2>
{
public:
Son1()
{
cout << "T1的数据类型为" << typeid(T1).name() << endl;
cout << "T2的数据类型为" << typeid(T2).name() << endl;
}
T1 n;
};
void test01()
{
Son1<int,char> s;
}
int main()
{
test01();
return 0;
}