c++ - 如何用自己的类型实例化父类(super class)模板?

标签 c++ templates inheritance

我有很多类 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/

相关文章:

c++ - 中断另一个线程对 zmqpp::poller::poll() 的调用

java - Java中调用native代码如何判断是不是内存泄漏?

python - 如何: django template pass array and use it in javascript?

c++ - "expected type-specifier"尝试从模板类创建 .o

c++ - 模板参数是如何展开的

java - 如何从父引用调用子方法?

c++ - 函数 length() 可以带参数吗?

c# - 有点脑筋急转弯 : Custom logic strings with C# classes

c++ - 关于C++虚基类和虚继承

c++ - 使用 boost::random 并获得相同的数字序列