0

有人可以解释一下int Aandint Bvoid func()and in的范围void func1()吗?

class C {
  struct S {
    int A;
  };

  int B

public :
  void func(){
  }
  void func1(){
  }
};
4

1 回答 1

1

不确定我是否完全理解您的要求,但如果我这样做,我会尽力回答。

函数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
}
于 2013-02-09T12:58:16.047 回答