const 对象默认为文件的局部变量

 

在全局作用域中定义非const变量时,它在整个应用程序中都可以访问,如果是const变量那么它只是在当前文件中的局部变量。

我们知道如果要一个变量在其他文件中也可使用的话我们可以用extern标识变量即可,默认非const型的变量为extern

1.cpp

extern int number;//声明了一个number变量,他会在其他模块寻找定义

int main(){

  cout<<number<<endl;//number是100

}

2.cpp

int number=100;//定义了一个全局变量,默认为extern

如果我们用const的话

2.cpp

const int number=100;//这个行吗?不行const之后默认不是extern而是文件的局部变量,所以要加extern

extern const int number=100;//这个ok

1.cpp

extern const int number;//我们知道const必须初始化,但是extern声明了就不用初始化了

int main(){

  cout<<number<<endl;//number是100

}

 

posted @ 2014-10-13 22:04  窝哥  阅读(182)  评论(0编辑  收藏  举报