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
}