Chinaunix首页 | 论坛 | 博客
  • 博客访问: 201540
  • 博文数量: 63
  • 博客积分: 1970
  • 博客等级: 上尉
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-22 14:26
文章分类

全部博文(63)

文章存档

2013年(2)

2012年(11)

2011年(19)

2010年(6)

2007年(11)

2006年(14)

分类: C/C++

2011-07-11 17:09:41

  这都是基础,其实只有一句话:永远别把函数的实现(定义)放到 .h 文件中。 .H文件中只方声明,实现就在.cpp文件,这样永远不会出现重复定义的错误。

编译 
.h是不参与编译的,编译器会将cpp文件中包含的.h文件复制到.cpp文件里面,然后编译每个.cpp生成对应的obj文件, obj文件里保存了对应cpp文件中的函数变量名,以符号表格式存在obj文件里面. 

链接 
连接器将所编译的obj文件读取到内存中,这个时候符号和对应的函数进行合并.如果有两个obj文件中存在相同的变量符号,那么就报出会“链接错误,变量重复定义.

  如果把定义放在.h中,那么多个cpp都包含此.h就会出现重定义的问题。

所以,  我们把函数的声明放在.h中,函数的定义放在.cpp中。 
   





阅读(898) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~