const 默认是内部连接的,所以,如果想让一个const变量可以被外部引用,其定义要写成:
extern const int x = 10;
而单独写extern const int x, 意味着const变量x在别处进行了定义。
例1:
//file1.cpp
extern const int x;
//file2.cpp
const int x =10;
编译连接file1.cpp和file2.cpp时会出错,因为const是默认内部连接,找不到变量x的定义。
例2:
//file1.cpp
extern const int x;
//file2.cpp
extern const int x =10;
参考:<C++编程思想>第8章 8.1.4节