kno*_*dge 1 c++ inheritance templates
如何以子类使模板类型为“修复”的方式使用模板基类。
例如,我有一个模板基类:
template <class A, int size> class BaseClass{
private:
A *elem;
public:
A()
{
elem = new A[size];
}
};
Run Code Online (Sandbox Code Playgroud)
我可以
BaseClass<int, 5> mybase;
Run Code Online (Sandbox Code Playgroud)
现在,我想制作一个仅具有参数size且类型应该为int的子类,即该子类应将A基类中的类型替换为固定类型(例如int)
像这样:
SubClass<5> mysubclass;
// type should be fixed to int, e.g. mysubclass can do the same like mybase
Run Code Online (Sandbox Code Playgroud)
问候
怎么样
template <int size>
using SubClass = BaseClass<int,size>;
Run Code Online (Sandbox Code Playgroud)
它不是子类,但据我了解,它可以满足您的需求。真正的子类将是
template <int size>
class SubClass: public BaseClass<int,size> {
...
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |