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

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

作者: 尘埃里的玄 | 来源:发表于2020-07-20 20:46 被阅读0次

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

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

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

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


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

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

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

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


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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/loxukktx.html