我希望从其封闭的类继承一个类,如:
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相反。
答案 0 :(得分:3)
这是不可能的,没有定义外部类就无法声明内部类。
答案 1 :(得分:3)
在指定继承的位置,内部类尚不清楚。因此你不能这样做。但是,如果重点是限制范围,那么只需使用命名空间,例如称之为detail
或implementation
。