【发布时间】:2010-10-31 09:01:41
【问题描述】:
我最近陷入了这样的境地:
class A
{
public:
typedef struct/class {…} B;
…
C::D *someField;
}
class C
{
public:
typedef struct/class {…} D;
…
A::B *someField;
}
通常你可以声明一个类名:
class A;
但是不能前向声明嵌套类型,以下会导致编译错误。
class C::D;
有什么想法吗?
【问题讨论】:
-
你为什么需要它?请注意,如果它是被定义的同一类的成员,您可以转发声明:class X { class Y;是*一个; };类 X::Y { };
-
这个解决方案对我有用(命名空间 C { class D; };):stackoverflow.com/questions/22389784/…
-
我找到了解决方案link
标签: c++ class nested forward-declaration