aa.hpp,被b.cpp和c.cpp包含
我把一些常量的定义放在aa.hpp,譬如 const int i = 1;
是不是该在aa.hpp里面写成externt const int i;
然后定义一个aa.cpp,里面写const int i = 1;这样?
我知道变量是这样,不过常量也是这样吗?为什么?
...全文
28210打赏收藏
请问,头文件的常量定义问题
aa.hpp,被b.cpp和c.cpp包含 我把一些常量的定义放在aa.hpp,譬如 const int i = 1; 是不是该在aa.hpp里面写成externt const int i; 然后定义一个aa.cpp,里面写const int i = 1;这样? 我知道变量是这样,不过常量也是这样吗?为什么?
常量默认是内部联接的,加上extern就成了外部联接,在一个头文件里要定义同时要初始化一个常量(extern const int i=1;)在用到它的文件里要进行声明(extern const int i;)这样在这个文件里就可以使用它了,不会重复定义,不会在用到头文件的文件里产成副本,真正的定义就是在头文件里,包含它的文件只是使用它。我觉得是这样的。