C 模板继承.子类应用固定类型替换基类中的类型

C++ Template Inheritance. Subclass should replace a type in a base class with a fixed type

本文关键字:类型 替换 基类 继承 子类 应用      更新时间:2023-10-16

我如何以子类制作模板类型" fix"的方式使用模板基类。

例如,我有一个模板基类:

template <class A, int size> class BaseClass{
    private:
        A *elem;
    public:
        A()
        {
            elem = new A[size];
        }
};

我可以做

BaseClass<int, 5> mybase;

现在,我想制作一个仅具有参数size的子类,类型应为int,即,子类应用固定类型替换基类中的A(例如int(

类似的东西:

SubClass<5> mysubclass; 
// type should be fixed to int, e.g. mysubclass can do the same like mybase 

问候

怎么样
template <int size>
using SubClass = BaseClass<int,size>;

这不是一个子类,但据我了解,它可以做您需要的事情。真正的子类是

template <int size>
class SubClass: public BaseClass<int,size> {
   ...
};

您可以将派生类定义为

template <int size> 
class SubClass : public BaseClass<int, size> {
    ...
};

然后,对于SubClass<5>,基类专业化为BaseClass<int, 5>