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声明
#include "example_a.h"ExampleB::ExampleB()
{emample_a_ = new ExampleA();
}
如果此文帮助到你( •̀ ω •́ )✧,动动小手点个赞可好O(∩_∩)O。
原创文章,转载请标明本文出处。
本文发布于:2024-01-30 14:31:04,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170659626520673.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |