参考《C++ Primer中文版》第四版 人民邮电出版社 P58:
因为头文件包含在多个源文件中,所以不应该含有变量或函数的定义。
对于头文件不应该含有定义这一规则,有三个例外。头文件可以定义类、值在编译时就已经知道的const对象和inline函数。这些实体可在多个源文件中定义,只要每个源文件中的定义是相同的。
在头文件中定义这些实体,是因为编译器需要它们的定义(不只是声明)来产生代码
类定义含类作用域内的函数与变量定义,也就是成员函数与数据成员。
1. 内成员函数如果隐式内联了,当然没有问题,可以放在头文件中。否则,如果显示内联,可以放在头文件中。如若不然,放在头文件中可能引起重复定义。
2. 数据成员:静态成员定义放在头文件中,可能会引起重复定义。非静态数据成员定义在类实例化的时候,才定义。
从根本上分析的话,还得从链接属性上分析。
所以说光函数不能在里面定义,除非把函数体写出来,都放在里面就可以通难过引用.h文件来使用函数
网友评论