您的位置:首页 > 其它

头文件重复包含问题

2010-11-26 12:05 246 查看
//'class'type redefinition

#ifndef ANIMAL_H_H
#define ANIMAL_H_H
class animal
{
public:
animal();
~animal();
void eat();
void sleep();
virtual void breathe();
};
#endif

原因,当编译器编译X03.CPP文件时,因为在文件中包含了animal.h头文件,编译器展开这个头文件,知道animal这个类定义了,接着展开fish.h头文件,而在fish.h头文件中也包含了animal.h,再次展开animal.h,于是animal这个类就重复定义了。

我们一般用#define定义一个宏,是为了在程序中使用,是程序更加简洁,维护更加方便,然而在此处,我们只是为了判断ANIMAL_H_H是否定义,以此来避免类重复定义,因此我们没有为其定义某个具体的值。在选择宏名时,要选用一些不常用的名字,因为我们的程序经常会跟别人写的程序集成,如果选用一个很常用的名字(例如:X),有可能会造成一些不必要的错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: