0
有人可以解釋int A
和int B
在void func()
和void func1()
的範圍嗎?帶結構的嵌套類的範圍
class C {
struct S {
int A;
};
int B
public :
void func(){
}
void func1(){
}
};
有人可以解釋int A
和int B
在void func()
和void func1()
的範圍嗎?帶結構的嵌套類的範圍
class C {
struct S {
int A;
};
int B
public :
void func(){
}
void func1(){
}
};
不知道我完全理解你的要求,但如果我這樣做,我會盡力回答。
功能func()
和func1()
是C
的成員函數,因此它們在此處具有完全相同的名稱。作爲成員變量C
的變量B
可以直接引用func()
和func1()
,而不用任何名稱空間限定它。
在另一方面變量A
,作爲一個公共的,非靜態成員的S
,需要前第一實例S
類型的對象變量被訪問,就像這樣:
void func()
{
S s;
B = 0; // Directly accessible, member variable of `C`
s.A = B; // A is a non-static member variable of `S`, requires an object
A == 3; // ERROR! A is not a member variable of C
}