请问头文件和源文件有什么具体区别?

mituzhishi 2004-03-25 04:49:26
.h文件和.cpp文件是困扰我的两个概念:

1.它们在可书写的内容上有具体区别吗?——是不是include<……>只能写在.h中?

2.它们有主从关系吗?

3.一个程序一般有几个.h或.cpp文件呢?
...全文
249 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
G895679887 2010-06-05
  • 打赏
  • 举报
回复
法国恢复
cgsw12345 2004-03-25
  • 打赏
  • 举报
回复
同意: tkggynije(明明) 说法!
mituzhishi 2004-03-25
  • 打赏
  • 举报
回复
阿奈,你的“但如果你对cpp文件这样作(#include "*.cpp")会导致链接错误。”
这句话太有用了!我搞了两个小时了,现在才明白!

各位高手,谁继续讲一下两个.cpp文件之间的区别?
abitz 2004-03-25
  • 打赏
  • 举报
回复
1。include<……>和include ”……“应该尽量放在cpp文件中。
在h文件中声明class时,如果对需要用到的type只需前置声明就可以的话,
就不要使用include 。使用include 会造成编译依赖。

2。h文件用来提供声明。使用include时它被简单的加载到cpp文件头部而
成为一个完整的文件。使用h文件主要是由于在不同的编译单元里声明可以有多个,
但定义只能有一个。你可以在不同的cpp文件中include同样的h文件。
但如果你对cpp文件这样作(#include "*.cpp")会导致链接错误。
另:编译器不会编译h文件。它被编译只是由于它被#include了而已。

3。如果使用oo的方法编程,一般每个class会有一个h文件和一个cpp文件。
但这并不是绝对的。

》》另外,两个.cpp文件之间的关系又是怎样的呢?
》》一个.cpp文件中包含main()函数,
》》它能调用另一个.cpp中定义的子函数void print()吗?

两个.cpp文件之间没有必然的关系。
函数(确切的说是non-static函数)具有外部连接,可以被其他文件引用。

建议你找资料了结一下c++的编译模型,了解一下关于内部、外部链接的知识。
wythust 2004-03-25
  • 打赏
  • 举报
回复
1,有,当一个程序分散在若干个文件中时,一般把多个文件共有的符号常量定义,宏定义,extern说明集中在一起,单独组成一个扩展名为.h的文件,称头文件
2,没有
3,不一定,视需要而定
mituzhishi 2004-03-25
  • 打赏
  • 举报
回复
另外,两个.cpp文件之间的关系又是怎样的呢?
一个.cpp文件中包含main()函数,
它能调用另一个.cpp中定义的子函数void print()吗?
tkggynije 2004-03-25
  • 打赏
  • 举报
回复
.h文件一般用于类和函数的声明,.cpp一般用与类和函数的实现
这样做是为了接口与实现相分离,因为在很多场合,原代码不边向用户公布,只向用户提供头文件和2进制的库即可。
至于一个程序有几个.h或.cpp这个好想没具体的规定
gzwl 2004-03-25
  • 打赏
  • 举报
回复
一个到定义 一个到实现

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧