有人可以解释一下int A
andint B
在void func()
and in的范围void func1()
吗?
class C {
struct S {
int A;
};
int B
public :
void func(){
}
void func1(){
}
};
不确定我是否完全理解您的要求,但如果我这样做,我会尽力回答。
函数func()
和func1()
是 的成员函数C
,因此它们在此处对完全相同的名称具有相同的访问权限。变量B
作为 的成员变量C
,可以直接引用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
}