| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 498 人关注过本帖
标题:请帮忙解决一下这个问题!
只看楼主 加入收藏
惜缘
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2010-7-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
请帮忙解决一下这个问题!
为什么在程序中出现了'point' : 'class' type redefinition时,要按以下方式解决,它所表示的意义是什么啊?

#ifndef LINE_H
#define LINE_H



#endif

请大家帮忙看一下!
2010-10-07 19:37
kspliusa
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:98
专家分:178
注 册:2009-9-27
收藏
得分:6 
是防止这个头文件被多次包含。。。如果多次包含会浪费编译器的编译时间!
2010-10-07 20:18
tornador
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:34
专家分:118
注 册:2010-10-4
收藏
得分:9 
首先:完整形式是#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,这就防止了头文件的重复定义。
希望对你有所帮助!

2010-10-09 15:15
惜缘
Rank: 1
等 级:新手上路
帖 子:32
专家分:4
注 册:2010-7-2
收藏
得分:0 
谢谢,我明白了
2010-10-09 16:19
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:5 
楼主自己实践几次应该就会用了。刚写头文件时都容易犯这错误。
2010-10-10 02:15
快速回复:请帮忙解决一下这个问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015689 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved