BZ易风

导航

 

基类如果是模板类,必须让子类告诉编译器 基类中的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;
}

结果:

 

posted on 2021-08-24 16:59  BZ易风  阅读(35)  评论(0编辑  收藏  举报