有人可以在int A
和int B
中解释void func()
和void func1()
的范围吗?
class C {
struct S {
int A;
};
int B
public :
void func(){
}
void func1(){
}
};
答案 0 :(得分:1)
我不确定我完全明白你的要求,但如果我这样做,我会尽力回答。
函数func()
和func1()
是C
的成员函数,因此它们在此处具有完全相同名称的相同访问权限。作为B
的成员变量的变量C
可以直接引用func()
和func1()
,而不用任何命名空间限定它。
另一方面,变量A
是S
的公共非静态成员变量,需要在访问之前首先实例化S
类型的对象,如下所示: / p>
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
}