0
点赞
收藏
分享

微信扫一扫

C++中类定义可以写在.h文件,但函数定义却不行

两岁时就很帅 2021-10-09 阅读 122
日记本

参考《C++ Primer中文版》第四版 人民邮电出版社 P58:

    因为头文件包含在多个源文件中,所以不应该含有变量或函数的定义。

    对于头文件不应该含有定义这一规则,有三个例外。头文件可以定义类、值在编译时就已经知道的const对象和inline函数。这些实体可在多个源文件中定义,只要每个源文件中的定义是相同的。

    在头文件中定义这些实体,是因为编译器需要它们的定义(不只是声明)来产生代码


类定义含类作用域内的函数与变量定义,也就是成员函数与数据成员。 

1. 内成员函数如果隐式内联了,当然没有问题,可以放在头文件中。否则,如果显示内联,可以放在头文件中。如若不然,放在头文件中可能引起重复定义。 

2. 数据成员:静态成员定义放在头文件中,可能会引起重复定义。非静态数据成员定义在类实例化的时候,才定义。

从根本上分析的话,还得从链接属性上分析。 


所以说光函数不能在里面定义,除非把函数体写出来,都放在里面就可以通难过引用.h文件来使用函数

举报

相关推荐

0 条评论