关于包含文件的问题

ssy2097 2009-09-28 04:52:34
书上讲创建个三个文件如下:
#ifndef MYTIME0_H_
#define MYTIME0_H_
class Time
{
private:
int hours;
。。。。
     public:
Time();
。。。。。   //声明类
};
#endif
保存成mytime0.h文件
#include<iostream>
#include"mytime0.h"
Time::Time()
{
hours=0;
minutes=0;   //定义类
}
。。。。
保存成mytime0.cpp文件
#include<iostream>
#include"mytime0.h" // 问题在这里,我没搞懂
int main()
{
using std::cout;
using std::endl;
time planning;
.......
return 0;
}
保存成usetime0.cpp
为什么只包含了mytime0.h?mytime0.cpp为什么不用包含呢?
...全文
89 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACgirl 2009-09-30
  • 打赏
  • 举报
回复
不好解释,多做多文件工程你会慢慢明白的
NonActive 2009-09-30
  • 打赏
  • 举报
回复
头文件的作用就是声明变量和方法的,就好比是API一样。
而源文件是书写函数体的。
如果涉及到版权,可以只提供API和编译好的EXE文件(或者DLL),而源文件是可以不提供的。
liuhao159753 2009-09-29
  • 打赏
  • 举报
回复
.h一般放函数声明,.cpp放的函数的实现,当然也可以把函数实现放在.h中写,如默认的构造函数和析构函数,所以用的时候只需要包含.h,函数声明会自动找函数实现~
shaozg168 2009-09-29
  • 打赏
  • 举报
回复
1 编译用的的文件只有.cpp文件,.h文件是不被编译用到的。
2 .h文件中一般只有类型或函数的声明。当a.cpp文件包含c.h文件,c.h里面声明的函数在这个a.cpp就可以直接调用而且编译时不会报错。
3 在链接时,链接器会在别的.cpp文件中生成的.obj文件中查找a.cpp用到的c.h中声明的函数。如果别的.obj没有c.h中声明的函数,这时才会报错,找到了就链接成功生成可执行文件如.exe。

麻烦楼主把基础好好看看!
duanyongzhi 2009-09-28
  • 打赏
  • 举报
回复
1 编译用的的文件只有.cpp文件,.h文件是不被编译用到的。
2 .h文件中一般只有类型或函数的声明。当a.cpp文件包含c.h文件,c.h里面声明的函数在这个a.cpp就可以直接调用而且编译时不会报错。
3 在链接时,链接器会在别的.cpp文件中生成的.obj文件中查找a.cpp用到的c.h中声明的函数。如果别的.obj没有c.h中声明的函数,这时才会报错,找到了就链接成功生成可执行文件如.exe。
fox000002 2009-09-28
  • 打赏
  • 举报
回复
编译和链接是分步进行了

编译时生成符号,链接时查找
飞天御剑流 2009-09-28
  • 打赏
  • 举报
回复
代码文件是单独编译的,跟usetime0.cpp一起放在工程里编译就行了,编译器会自己在编译的文件中查找定义。
chenrui516313 2009-09-28
  • 打赏
  • 举报
回复
mytime0.h头文件对相应的类或函数进行申明,连接的时候会去mytime0.cpp编译生成的obj文件中找相应的实现。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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