正文

C++头文件重复包含 2007-05-16 13:08:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yuqiexing/25947.html

分享到:

A类中包含了B类的对象,B类中又包含了A类对象,就这么简单的一个问题,我都搞不定,后来查了资料才搞定。

这实际上是INCLUDE重复包含的问题,造成编译不通过。不过还是找到了资料

供大家参考!
http://www.yesky.com/127/1736627_3.shtml
(很多Visual C++书籍对这些问题避而不谈,但实际上这是一个重要的问题。如果不能理解上述代码,我们很可能为无法通过编译而大伤脑筋。这些问题的出现是基于这样的一些事实:在我们用标准C/C++设计程序时,有一个原则即两个代码文件不能相互包含,而且多次包含还会造成重复定义的错误。为了解决这个难题,Visual C++使用#pragma once来通知编译器在生成时只包含(打开)一次,也就是说,在第一次#i nclude之后,编译器重新生成时不会再对这些包含文件进行包含(打开)和读取,因此我们看到在用向导创建的所有类的头文件中有#pragma once语句就不会觉得奇怪了。然而正是由于这个语句而造成了在第二次#i nclude后编译器无法正确识别所引用的类。因此,我们在相互包含时还需要加入类似class CViewerView这样的语句来通知编译器这个类是一个实际的调用。)

阅读(4964) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册