头文件里面是否应该包含函数的实现
2012-12-25 23:08
274 查看
最近写程序,把函数在头文件里面实现了。后面编译的时候出现各种问题,最后把函数的实现和函数的定义分别写在头文件和cpp文件中,这样才正确,认为是以下原因引起:
在头文件中,在最先的编译阶段(Compiling)是对每个函数生成.obj文件,后面链接(linking)的时候要分配空间。但是头文件里面有函数的实现,所以已经分配了空间,如果在后面的cpp中遇到调用该函数,会出现重复分配空间的情况,会提示错误。只不过上面是猜测,后面有时间了在来验证一下。
但是得出一个教训:要把函数的定义和实现分开写。
在头文件中,在最先的编译阶段(Compiling)是对每个函数生成.obj文件,后面链接(linking)的时候要分配空间。但是头文件里面有函数的实现,所以已经分配了空间,如果在后面的cpp中遇到调用该函数,会出现重复分配空间的情况,会提示错误。只不过上面是猜测,后面有时间了在来验证一下。
但是得出一个教训:要把函数的定义和实现分开写。
相关文章推荐
- 头文件里面实现一个函数,在两个cpp中包含,则重复定义,如果加上inline则不会报错
- javascript 如何判断元素是否包含一个特定的类,hasClass函数的实现
- 判断数组是否包含某个元素的js函数实现方法
- 配 samba ,实现linux和windows的共享 共享不应该包含可执行文件
- C++中的freopen()函数实现比较两个文件的内容是否相同
- 判断数组是否包含某个元素的js函数实现方法
- 通过文件锁实现,程序开始运行时,先判断文件是否存在,若存在则表明该程序已经在运行了,如果不存在就用open函数创建该文件,程序退出时关闭文件并删除文件
- Java 实现 扫描两文件内容 是否包含。
- 检测可执行文件中是否包含某函数
- js判断js文件有没有引入,一般引入的js文件里面都会有函数和对象是否存在
- 包含有函数实现的.h文件注意事项
- C/C++语言之通过定义指针函数方式来实现在一个cpp文件里面获取另外一个cpp文件函数的返回值
- 通过文件锁实现,程序开始运行时,先判断文件是否存在,若存在则表明该程序已经在运行了,如果不存在就用open函数创建该文件,程序退出时关闭文件并删除文件。
- 类重复导致的错误,只要检查一下aar文件里面是否包含了model文件里的类
- 【转】通过文件锁实现,程序开始运行时,先判断文件是否存在,若存在则表明该程序已经在运行了,如果不存在就用open函数创建该文件,程序退出时关闭文件并删除文件
- 最好不要在头文件里面包含定义变量
- Python实现确认字符串是否包含指定字符串的实例
- git是一种分布式代码管理工具,git通过树的形式记录文件的更改历史,比如: base'<--base<--A<--A' ^ | --- B<--B' 小米工程师常常需要寻找两个分支最近的分割点,即base.假设git 树是多叉树,请实现一个算法,计算git树上任意两点的最近分割点。 (假设git树节点数为n,用邻接矩阵的形式表示git树:字符串数组matrix包含n个字符串,每个字符串由字符'0
- c++ 头文件<cwchar>中常见函数的实现!!!
- C#实现判断字符串中是否包含中文的方法