Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1050828
  • 博文数量: 288
  • 博客积分: 10306
  • 博客等级: 上将
  • 技术积分: 3182
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-12 17:00
文章分类

全部博文(288)

文章存档

2011年(19)

2010年(38)

2009年(135)

2008年(96)

我的朋友

分类: C/C++

2009-08-26 15:31:43

1.今天遇到一个问题,编译器总是在编译完后提示:C2145 C2501错误,说我在XXApp.h中定义的某个自定义类成员变量有问题,找不到这个自定义类的定义,代码示意如下:
//MyClass.h
...
CMyXXOjbect 
{
public:
  int m_nID;
}

//XXXApp.h
CXXXApp : public CWinApp
{
  ...

  CMyXXOjbect m_oMyObject;
}

    经过修改类名等无聊的重复工作后,编译错误依旧;
    到网上搜索相关问题时,有一位高手说了一句:cpp中include某个头文件时,又在这个include的头文件中包含当前cpp的头文件.....
    初一看有点绕,但仔细一想,就是不能死循环的包含头文件,那我的这个代码中有没有这个问题呢?
    回忆一下,再细看代码,果然存在这样的问题:我在MyClass.h中include "XXXApp.h" 而在这个app头文件中通过另一个类间接的又包含了"MyClass.h".
    去掉这种死循环式的头文件相互包含,编译通过!
阅读(1885) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~