可能重复:
C++ 中嵌套类型/类的前向声明
对于类的简单交叉引用,预先声明类名并将其用作引用是可行的。以这种方式,表示是一个指针。但是如果我想交叉引用两者的嵌套类(看下面的例子),我会遇到麻烦,因为似乎没有办法预先声明一个嵌套类。
所以我的问题是:有没有办法预先声明嵌套类,以便我的示例可以工作?
如果没有:是否有一个通用的解决方法,这不会使代码过于丑陋?
// Need to predeclare it to use it inside 'First'
class Second;
class Second::Nested; // Wrong
// Definition for my 'First' class
class First
{
public:
Second::Nested* sested; // I need to use the nested class of the 'Second' class.
// Therefore I need to predeclare the nested class.
class Nested { };
};
// Definition for my 'Second' class
class Second
{
public:
First::Nested* fested; // I need to use the nested class of the 'First' class.
// This is okay.
class Nested { };
};