爲什麼它會在情況1中產生錯誤,但在情況2中不會產生錯誤?做完forward declareion編譯器會以其他方式對待它嗎?我認爲它只是編譯器的一個聲明,用於搜索整個文件的類apple
。類的前向聲明導致不完整的類型錯誤
// CASE 1
class apple; // forward declaration
class fruit{
apple b; // error: incomplete type but why? there is no recursion I guess
};
class apple{
public: int a;
};
int main(){
fruit f;
return 0;
}
// CASE 2
class apple{
public: int a;
};
class fruit{
apple b; // no error works fine
};
int main(){
fruit f;
return 0;
}
請解釋一下。任何幫助是極大的讚賞。