1

我有很多类 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 的“成员”需要委托给中央容器,所以我需要这个子结构。是的,我知道,我也不喜欢它,但这无法改变。

4

1 回答 1

2

这是无法做到的,因为在实例化基础时,类型仍然不完整,并且未定义嵌套类型。您要解决的问题是什么?可能有比您尝试的更简单的解决方案。

于 2013-04-15T13:35:23.553 回答