我想创建一个父类Foo
继承自模板,其参数是自己的嵌套类Sub
但是Sub
没有得到Foo
,你有吗?解决方案?
class Foo : public Bar<Sub>
{
class Sub
{
}
}
由于
解决方案:没有“通用”方法可以做到这一点,所以最好的解决方案是将嵌套类带出来。
答案 0 :(得分:4)
不,这是不可能直接的,只是因为名称Sub
在您想要使用它时不在(并且不能)范围内。如果您不能简单地移出类(您需要将其作为成员访问),您可以通过使用一个非常独特的名称移动嵌套类来解决它,在类中为它提供typedef
,如果必要的,使它成为friend
:
class Foo_Sub_ce60eba1_67fa_48a3_b5f5_fce89d717839
{
// Contents...
};
class Foo : Bar<Foo_Sub_ce60eba1_67fa_48a3_b5f5_fce89d717839>
{
typedef Foo_Sub_ce60eba1_67fa_48a3_b5f5_fce89d717839 Sub;
friend Sub;
};