今天突然發現了一個很緻命的錯誤,兩個頭檔案,一個a.h,一個b.h,然後代碼是這樣的:
//a.h
#include "b.h"
class AClass
{
AClass();
private:
BClass b;
}
//b.h
#include "a.h"
class BClass
{
BClass();
private:
AClass a;
}
報錯了,找不到BClass,因為互相包含是包含嵌套循環導緻錯誤。
解決辦法如下:
//a.h
#include <QApplication>
class BClass;
class AClass
{
AClass();
private:
BClass a;
}
然後在a.cpp裡面添加:
//a.cpp
#include "b.h"
//b.h
#include <QApplication>
class AClass;
class BClass
{
BClass();
private:
AClass a;
}
//b.cpp
#include "a.h"