C ++:如何从封闭类继承

时间:2015-02-09 01:34:56

标签: c++

我希望从其封闭的类继承一个类,如:

class A : public A::B {
public:
    class B {};
};

但是,未定义A::B的编译器complains

error: expected class-name before '{' token
 class A : public A::B {

也就是说,在A::B的定义完成之前,A无法使用。

我试图用

作为前言
class A;
class A::B;

但它没有帮助。如何正确地声明和定义?

注意:基本上,我试图与this question相反。

2 个答案:

答案 0 :(得分:3)

这是不可能的,没有定义外部类就无法声明内部类。

答案 1 :(得分:3)

在指定继承的位置,内部类尚不清楚。因此你不能这样做。但是,如果重点是限制范围,那么只需使用命名空间,例如称之为detailimplementation