基类如果是模板类,必须让子类告诉编译器 基类中的T到底是什么类型
如果不告诉,那么无法分配内存,编译不过
利用参数列表class Child :public Base<int>
#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; template<class T> class Base { public: T m_A; }; //Child继承Base时 必须要告诉Base中的T的类型, 否则T无法分配内存 class Child :public Base<int> { }; //Child2也是模板类的时候 template <class T1, class T2> class Child2 :public Base<T2> //必须要分一个泛型给Base { public: Child2() { cout << "T1类型:" << typeid(T1).name() << endl; cout << "T2类型:" << typeid(T2).name() << endl; } T1 m_B; }; void test01() { Child2<int, double> child; //指定类型 } int main() { test01(); system("Pause"); return 0; }
结果: