int i[i]; //line 1
它創建尺寸1的int數組,作爲索引i是常數初始化爲1
int j = j; //line 2
它聲明和一個initilizes變量j到2(恆定j的值)命名空間ÿ
x x; //line 3
它創建一個結構變量x型結構x(爲注:結構變量x是從INT X存在於結構X的內部不同,INT x是STRUC的成員TURE X
int y::y = x.x; //line 4
這在語法上是錯誤的,沒有必要的資格INT y隨命名空間(「Y」),因爲它是在namespaaceŸ已經存在,所以語句應該
int y = x.x
其中xx表示訪問數據成員在該行創建的結構變量x的(INT X)3
命名空間例如對此示例一看,它可以幫助你理解命名空間清晰。參閱的鏈接更多的例子[鏈接] http://www.cplusplus.com/doc/tutorial/namespaces/
#include <iostream>
using namespace std;
namespace first
{
int x = 5;
int y = 10;
}
namespace second
{
double x = 3.1416;
double y = 2.7183;
}
int main() {
using namespace first;
cout << x << endl;
cout << y << endl;
cout << second::x << endl;
cout << second::y << endl;
return 0;
}
//輸出 3.1416
2.7183
......Hope it helps you....:)
這是否代碼甚至編譯? – leppie
@leppie。我不知道。在書中,他們是這樣寫的,並將其標記爲一個工作示例... – someone
簡化,'namespace y'表示「我括號內包含的所有內容都需要以'y ::'爲前綴,以便編譯器找到」這是一個避免命名衝突的方式,'x :: x'與'y :: x'不同,沒有命名空間都會被命名爲'x'。 –