Visual C++6里创建源文件和头文件有什么区别

本人刚学 ,

头文件和源文件在功能上,用法上,有很大不同

头文件最大的特点就是,各种程序都可以包含它,可以起到代码的重用,提高效率,使得要写很多代码的程序直接用饱含头文件的方法就能实现。

头文件可以想象成代码的等价替换,就像宏一样,如:
//在my.h
int i;
------
//在my.cpp
#include my.h
main(){...}
这样编译后,就可以看成
//
int i;
main(){...}

另外,头文件不能有入口函数,比如main winmain。

一般在头文件中常做一些宏定义,类型定义,相关声明等,像代码实现,全局变量定义,入口函数等都会在cpp文件中。

比如:
//in file my.h
typedef int BOOL //类型定义
#define TRUE 1 //宏定义
#define FALSE 0 //宏定义
typedef struct Student{
char* name;
int age;
}Student,* pStudent;//结构体定义
class Teacher
{
public:
char* name;
public:
vitual Display();//只声明有这个函数,却不实现它,它的实现在cpp中
}//类定义
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-09-01
头文件跟源文件一样,里面可以有任何C / C++语句, 包括你把main函数写在里面也没什么原则问题。

源文件和头文件的差别就是, 源文件的扩展名是 .c或 .cpp , 编译器只认可这个扩展名的文件作为一个“编译单元”。 而头文件不是这个扩展名(这只是vc的现实情况,你不可以在工程里加一个叫xx.c的文件作为头文件), 所以编译器当它本身不存在, 你必须在某个源文件中用 #include 包含它才行。
第2个回答  2009-09-01
头文件是定义:
如:
/***********************************************************************
功能:判断时间是不合法
参数:hour 时
minute 分
second 秒
返回:true 正确
false 错误
***********************************************************************/
BOOL Istime(int hour,int minute,int second);
CString m_errormessage;
源文件是实现:
如:

BOOL CDateTime::Istime(int hour,int minute,int second)
{

if (hour<0||hour>=24)
{
m_errormessage=L"小时不合法";
return FALSE;
}
if (minute<0||minute>=60)
{
m_errormessage=L"分钟不合法";
return FALSE;
}
if (second<0||second>=60)
{
m_errormessage=L"秒不合法";
return FALSE;
}
return TRUE;
}本回答被提问者采纳
第3个回答  2009-09-01
创建方式没什么区别。
两者用途不一样而已,一个声明,一个定义。
而且两者一般成对出现。就是说如果有A.h,就应该有A.cpp
第4个回答  2009-09-01
刚学的话用源文件就行了。
一般对一个类来说头文件里包括类的成员和函数的声明,源文件里面包括函数的具体部分
相似回答