using namespace Exercise; 不會導致 ival 的 redeclaration,但是 using Exercise::ival; 反而會導致 redeclaration 是為什么;如下面的代碼:#include <iostream>using namespace std;namespace Exercise
{ int ivar = 0; double dvar = 0; const int limit = 1000;
}// using namespace Exercise;using Exercise::ivar;int ivar = 0;
2 回答
收到一只叮咚
TA貢獻1821條經驗 獲得超5個贊
命名空間就是解決命名沖突問題的,不過你那個using Exercise::ivar;相當于declare了一遍Exercise里的ivar變量,就是說沖突的不是ivar和using Exercise::ivar,而是你又declareusing Exercise::ivar
以下代碼就沒問題了,因為沒有再次declareusing Exercise::ivar
吃雞游戲
TA貢獻1829條經驗 獲得超7個贊
#include <iostream>using namespace std;namespace Exercise
{ int ivar = 0; double dvar = 0; const int limit = 1000;
}// using namespace Exercise;int ivar = 0;int main(){ cout<<Exercise::ivar; cout<<ivar; return 0;
}- 2 回答
- 0 關注
- 800 瀏覽
添加回答
舉報
0/150
提交
取消
