编程论坛
注册
登录
编程论坛
→
C++教室
请帮忙解决一下这个问题!
惜缘
发布于 2010-10-07 19:37, 498 次点击
为什么在程序中出现了'point' : 'class' type redefinition时,要按以下方式解决,它所表示的意义是什么啊?
#ifndef LINE_H
#define LINE_H
#endif
请大家帮忙看一下!
4 回复
#2
kspliusa
2010-10-07 20:18
是防止这个头文件被多次包含。。。如果多次包含会浪费编译器的编译时间!
#3
tornador
2010-10-09 15:15
首先:完整形式是#ifndef LINE_H
#define LINE_H
。。。//头文件内容
#endif
'point' : 'class' type redefinition表明在程序里面发生了重复定义,在C++当中,声明可以有重复,但定义却只能有一次。比如像函数的声明与定义。
你说可以用#ifndef LINE_H #define LINE_H可以来解决这个问题。说明在程序中是由于头文件的重复包含导致的重复定义。
#ifndef LINE_H #define LINE_H是用来防止头文件重复包含的。你可以从字面意思上看出:中文解释大概是:如果没有定义LINE,那么就定义LINE以及后面的内容
所以,在一个CPP文件中,调用头文件时,头文件中先判断是否定义了LINE,如果没有,就定义头文件,如果定义了,则直接跳到#endif,这就防止了头文件的重复定义。
希望对你有所帮助!
#4
惜缘
2010-10-09 16:19
谢谢,我明白了
#5
pangding
2010-10-10 02:15
楼主自己实践几次应该就会用了。刚写头文件时都容易犯这错误。
1