我有很多类 A 除了它们的数据结构外都非常相似,所以我想将通用的东西移到基本模板 B 中。问题是模板参数是继承类的一部分,所以它在我需要将它传递给模板的那一点之后。如果不将 X 移出 A(试图保持封装),如何实现这一点?
template<class X>
class B {
int somefunction( X a );
};
class A : public B<X> {
public:
struct X { // different in each class A
int x;
};
};
注意:出于架构原因,A 的“成员”需要委托(delegate)给中央容器,所以我需要这个子结构。是的,我知道,我也不喜欢,但这是无法改变的。
最佳答案
那是做不到的,因为在实例化基础的时候,类型仍然不完整,嵌套类型也没有定义。您要解决的问题是什么?可能有比您正在尝试的更简单的解决方案。
关于c++ - 如何用自己的类型实例化父类(super class)模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16016360/