| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1335 人关注过本帖
标题:C++头文件
只看楼主 加入收藏
faminxmu
Rank: 3Rank: 3
来 自:厦门
等 级:论坛游侠
帖 子:191
专家分:106
注 册:2008-4-23
结帖率:70%
收藏
 问题点数:0 回复次数:13 
C++头文件
在hello.h中有如下代码
#ifndef HELLO
#define HELLO
void hello();
#endif
在hello.cpp中有如下代码
#include"hello.h"
void hello()
{
     std::cout<<"hello!"<<std::endl;
     }
在text.cpp中有如下代码
#include<iostream>
using namespace std;
#include"hello.h"
int main()
{
    hello();
}
运行结果是hello()没定义,请问这个头文件怎么组织??
搜索更多相关主题的帖子: 文件 
2008-11-24 22:34
沼泽
Rank: 4
等 级:业余侠客
威 望:8
帖 子:291
专家分:228
注 册:2008-9-15
收藏
得分:0 
你的头文件定义没有什么问题,就是不够规范,可以看看MFC中自动生成的头文件的条件编译代码
在hello.cpp使用了std::cout要加入相应的头文件,除了这个错误,应该是没有问题的,如果有的话,
只有可能是你的头文件和源文件没有关联起来
2008-11-25 09:33
一代怒王
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-19
收藏
得分:0 
int main()
{
    hello();
}
应该还要return 0返回把

他日若遂凌云志
    敢笑黄巢不丈夫!!!
2008-11-25 15:02
faminxmu
Rank: 3Rank: 3
来 自:厦门
等 级:论坛游侠
帖 子:191
专家分:106
注 册:2008-4-23
收藏
得分:0 
都说了是hello()没定义这个地方错了,大家就不要讲其他地方了,其他地方可能有些不太规范的地方,但我能保证没错

在虚拟的世界中寻找目标。
2008-11-25 17:43
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分:0 
如果你能把错误信息完整的放上来,对分析错误根源会很有帮助.现在只好瞎猜了.
单看这几个文件,的确没有造成那个错误的可能.但如果宏HELLO在什么地方定义了而你却不知道
那么是会出现这个错误的.
当然也有其它的可能原因,如果还有其它错误信息,一并放上来吧.
2008-11-25 23:56
faminxmu
Rank: 3Rank: 3
来 自:厦门
等 级:论坛游侠
帖 子:191
专家分:106
注 册:2008-4-23
收藏
得分:0 
编译器: Default compiler
执行  g++.exe...
g++.exe "C:\Documents and Settings\Administrator\桌面\程序学习\text.cpp" -o "C:\Documents and Settings\Administrator\桌面\程序学习\text.exe"   -pg -g3  -I"lib\gcc\mingw32\3.4.2\include"  -I"include\c++\3.4.2\backward"  -I"include\c++\3.4.2\mingw32"  -I"include\c++\3.4.2"  -I"include"   -L"lib" -lgmon -pg  -g3
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cceWbaaa.o(.text+0x144): In function `main':
C:/Documents and Settings/Administrator/桌面/程序学习/text.cpp:6: undefined reference to `hello()'
collect2: ld returned 1 exit status

执行结束

在虚拟的世界中寻找目标。
2008-11-26 16:43
debroa723
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:23
帖 子:862
专家分:1954
注 册:2008-10-12
收藏
得分:0 
除了main函数的返回值问题外,还真找不到其它问题,我在VS2008上编译,没有问题.
想不通啊,除非宏HELLO已经被定义了,才能使编译头文件hello.h时无法编译函数hello,造成hello是未定义
不介意把工程上传来看看吧.
2008-11-28 00:14
faminxmu
Rank: 3Rank: 3
来 自:厦门
等 级:论坛游侠
帖 子:191
专家分:106
注 册:2008-4-23
收藏
得分:0 
我不知道怎么建工程,我就写了那三个文件放在同个文件夹里

在虚拟的世界中寻找目标。
2008-11-30 21:35
zhangyafei4353
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2008-11-28
收藏
得分:0 
兄弟们,我在VC6.0运行了一下,能行。。
我把我建立的工程传上去。。。

TEXT.rar (819.88 KB)
2008-11-30 22:14
woshiyun
Rank: 1
等 级:新手上路
威 望:2
帖 子:348
专家分:0
注 册:2008-6-16
收藏
得分:0 
以下是引用faminxmu在2008-11-30 21:35的发言:

我不知道怎么建工程,我就写了那三个文件放在同个文件夹里

不用建工程也可以啊,我就是这么干的。和你做法一样。
编译通过。
2008-12-01 11:12
快速回复:C++头文件
数据加载中...
 
   



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

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