0
我正在處理鏈接到C庫的C++項目。我的C++類如下:創建對象時出現「未定義的結構體」錯誤
extern "C" {
struct __struct1__;
struct __struct2__;
struct __struct3__;
struct __struct4__;
}
namespace mynamespace {
class MyClass : public Parent {
public:
....
private:
....
__struct1__* s1;
__struct2__* s2;
struct __struct3__ s3;
struct __struct4__ s4;
};
}
創建類似s1和s2的指針時,一切正常。但物體不能很好地工作。生成以下錯誤:使用未定義的結構
我怎樣才能創建像S3和S4對象
錯誤?
確保'__struct4__'具有完整的定義,而不僅僅是一個聲明。如果沒有告訴編譯器,編譯器應該知道進入「__struct4__」的內容!? – StoryTeller
[未定義的C結構向前聲明]的可能的重複(http://stackoverflow.com/questions/621356/undefined-c-struct-forward-declaration) – 2013-07-31 11:49:23
編譯器總是知道指針的大小(所以它將永遠是能夠創建一個指針)。編譯器從不知道用戶定義類型的大小,除非它的定義已經被滿足(這裏,你沒有爲s3和s4定義類型,因此編譯器不知道如何處理它們)。 – Nbr44