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