创建对象时出现“未定义的结构”错误

时间:2013-07-31 11:45:13

标签: c++ c linker

我正在开发一个链接到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等对象?

1 个答案:

答案 0 :(得分:2)

变量:

__struct1__ *s1

只是类型指针(对于你的结构,但仍然只是一个指针),因此编译器确切知道这个变量需要多少内存。但在以下情况下:

__struct3__ s3

此变量的类型为__struct3__,因此如果没有完整定义编译器,则不知道其大小。