const对象默认是static的,而不是extern的
Posted 朝闻道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了const对象默认是static的,而不是extern的相关的知识,希望对你有一定的参考价值。
const 和 static 变量,可以放在头文件中
const对象默认是static的,而不是extern的,所以即使放在头文件中声明和定义。多个cpp引用同一个头文件,互相也没有感知,所以不会导致重复定义。
类(class)的定义,可以放在头文件中
用类创建对象的时候,编译器要知道对象如何布局才能分配内存,因此类的定义需要在头文件中。一般情况下,我们把类内成员函数的定义放在cpp文件中,但是如果直接在class中完成函数声明+定义的话,这种函数会被编译器当作inline的,因此满足上面inline函数可以放在头文件的规则。但是如果声明和定义分开实现,但是都放在头文件中,那就会报重复定义了!!
https://zybuluo.com/uuprince/note/81709
以上是关于const对象默认是static的,而不是extern的的主要内容,如果未能解决你的问题,请参考以下文章