error C4430: 缺少类型说明符

阅读: 评论:0

error C4430: 缺少类型说明符

error C4430: 缺少类型说明符

  • 出现原因:两个类头文件相互包含,这里以类 ExampleAExampleB 为例进行分析。

example_a.h声明

#include "example_b.h"class ExampleA{ExampleA();~ExampleA();
}

example_b.h声明

#include "example_a.h"class ExampleB{ExampleB();~ExampleB();private:ExampleA *emample_a_;
}
  • 如上述代码所示,此时编译将会报两个错误:
    error C2146: 语法错误:缺少“;”(在标识符emample_a_的前面)
    error C4430: 缺少类型说明符 - 假定为 int, 注意: C++ 不支持默认 int。

  • 解决办法:删掉其中一个类中包含的头文件,并在该类前声明删掉头文件中的类。如下所示:

example_b.h声明

class ExampleA;class ExampleB{ExampleB();~ExampleB();private:ExampleA *emample_a_;
}
  • 类对象声明可以在头文件中,但是对象的实例化需要放在 example_b.cpp中,且需要在example_b.cpp中添加之前删除的头文件。如下所示:

example_b.cpp声明

#include "example_a.h"ExampleB::ExampleB()
{emample_a_ = new ExampleA();
}
  • 总结
    总的来说就是删除相互包含的头文件,添加所需类的声明,并将该头文件添加到相应cpp文件中。

如果此文帮助到你( •̀ ω •́ )✧,动动小手点个赞可好O(∩_∩)O。

原创文章,转载请标明本文出处。

本文发布于:2024-01-30 14:31:04,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170659626520673.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:说明符   类型   error
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23