类中声明类型声明的范围是什么?

Hai*_*ang 3 c++

如果在类中声明了新类型,例如:

class foo {
public :
   struct s1 {
        int a ;
   };
private :
  struct s2 {
        int b ;
  };
};
Run Code Online (Sandbox Code Playgroud)

那么在以下陈述的范围内可以使用:

s1 ss1;
s2 ss2;
Run Code Online (Sandbox Code Playgroud)

提前致谢.

小智 7

类型s1可以在任何地方使用,但如果在foo的成员函数之外使用,则必须限定:

foo::s1 ss1;
Run Code Online (Sandbox Code Playgroud)

类型s2只能用于foo的成员函数.