我正在开发一个链接到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这样的指针时,一切正常。但是对象效果不好。生成以下错误:
使用未定义的struct
时出错
如何创建s3和s4等对象?
答案 0 :(得分:2)
变量:
__struct1__ *s1
只是类型指针(对于你的结构,但仍然只是一个指针),因此编译器确切知道这个变量需要多少内存。但在以下情况下:
__struct3__ s3
此变量的类型为__struct3__,因此如果没有完整定义编译器,则不知道其大小。