zoukankan      html  css  js  c++  java
  • 类模板继承问题

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

    结果:

  • 相关阅读:
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Ethical Hacking
    Oil Skimming HDU
    Rain on your Parade HDU
    Swap HDU
    棋盘游戏 HDU
  • 原文地址:https://www.cnblogs.com/yifengs/p/15181163.html
Copyright © 2011-2022 走看看