C 模板继承.子类应用固定类型替换基类中的类型
C++ Template Inheritance. Subclass should replace a type in a base class with a fixed type
我如何以子类制作模板类型" 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>
。
相关文章:
- 如果可推导类型上有替换,可变参数模板类型推导会使编译器崩溃
- C++类型别名,其中值被替换
- 为表示一个或多个操作的C++函数的int参数寻找类型安全的替换
- 为什么在 ctor 的参数列表中将成员"x"的类型替换为"decltype(x)"会破坏类模板参数推导?
- 如何替换给定类型中的模板参数
- 从"wcslen"替换到"strnlen_s"时,用"const char*"进行类型转换是正确的方法吗?
- 通过替换类型重写参数包
- 不能将模板参数替换为类型模板参数_Ty
- 匹配部分专用化以按类型替换元组元素
- C 模板继承.子类应用固定类型替换基类中的类型
- 我可以使用预处理器将一个类型声明替换为另一个类型声明吗?
- 在这种情况下,有没有办法用单个解决方案替换两个仅在类型上不同的相似函数?
- 使用类型名参数时,模板参数推导/替换失败
- 应替换现有类型,向其添加新类型
- 替换特定字母的函数不会以 void 返回类型运行
- 枚举类的c++typedef/类型替换
- 我们可以将所有"int"参数和返回类型替换为 DllImport 方法签名中的"IntPtr"吗?
- C++ 代码类型替换失败
- 将adt_proxy类型替换为值类型时出现Boost融合错误
- 使用默认类型替换c++函数引用模板错误