C++ 具有结构的嵌套类的作用域

C++ 具有结构的嵌套类的作用域,c++,class,scope,C++,Class,Scope,有人能解释一下void func()和void func1()中int A和int B的范围吗 我不确定我是否完全理解你的要求,但如果我理解,我会尽力回答 函数func()和func1()。变量B,作为C的成员变量,可以使用func()和func1()直接引用,而无需使用任何命名空间对其进行限定 变量A另一方面,作为S的公共非静态成员变量,需要在被访问之前先实例化S类型的对象,如下所示: void func() { S s; B = 0; // Directly accessib

有人能解释一下
void func()
void func1()中
int A
int B
的范围吗


我不确定我是否完全理解你的要求,但如果我理解,我会尽力回答

函数
func()
func1()。变量
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
}
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
}