我想将嵌套类Inner从Outer.h移到一个单独的头文件中:
class Outer{
class Inner{
public:
Inner(Outer& o){}
};
public:
Outer():i(*this){}
~Outer(){}
Inner i;
};
Run Code Online (Sandbox Code Playgroud)
而对于'main.cpp'
#include "Outer.h"
int main(){
Outer o;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是一旦我尝试将Inner类放在一个像这样的分隔头中:
class Outer{
class Inner;
public:
Outer():i(*this){}
~Outer(){};
Inner i;
};
Run Code Online (Sandbox Code Playgroud)
并将Inner类放在'Inner.h'中,如下所示:
class Outer::Inner{
public:
Inner(Outer& o){}
};
Run Code Online (Sandbox Code Playgroud)
并添加到主#include'Inner.h'中,如下所示:
#include "Outer.h"
#include "Inner.h"
int main(){
Outer o;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我从编译器得到以下错误:Outer.h:10:9:错误:字段'i'的类型不完整.
我或多或少地了解为什么,但我找不到问题来实现我想做的事情.