首页 > 解决方案 > 在 C++ 中覆盖孙子类中的模板参数?

问题描述

我有以下层次结构

template<class SettingsType>
    class TemplatedBase;

class A : public TemplatedBase<SettingsTypeA>;

class B : public A;

class SettingsTypeA;

class SettingsTypeB : public SettingsTypeA;

有没有办法覆盖模板专业化,B以便A在将模板专业化SettingsType设置为时继承自SettingsTypeB

标签: c++templatesinheritance

解决方案


不,模板不是一个类。这是一个模板

TemplatedBase<SettingsTypeA>是模板的特定实例化 - 它只是常规Foo类。除此之外没有什么特别的。

所以你的问题相当于问你是否可以CD下面的例子中改变:

class A : public C;

class B : public A;

推荐阅读