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的的主要内容,如果未能解决你的问题,请参考以下文章

const和static readonly 区别

C++面向对象-static、const

static和const变量有什么区别?

WPF-学习

C语言中auto,register,static,const,volatile的区别

CPP_const&static