多文件编译的const全局变量问题
原理
C++中const全局变量是仅在本文件中可见的,当多文件编译时,如果想在某个文件中使用extern关键字使用定义在其他文件中的const变量,那么该const变量在定义时需要加extern关键字。
实验
main.cpp:
#include <iostream>
using namespace std;
int main()
{
extern const int a_in_other_c;
cout << " a_in_other_c: " <<a_in_other_c << endl;
return 0;
}
vars.cc:
//const int a_in_other_c = 100; // error, const must be defined as extern for use from other file
extern const int a_in_other_c = 100;