C++ 内部类(嵌套类)

内部类

内部类就像这个类的一个成员函数,所以内部类有权访问外部类内容(包括private内容)。但是内部类就相当于在一个作用域内定义了一个类,这个作用域内的其他变量是无权访问这个类的。

class Out{

public : 
  void Fun () 
  {
       nested object; // 这个函数不能通过
       object.b_ = 1;
  }
private:
   class nested{
     void Fun2()
     {
          Out object;
          object._a = 1; // 这个函数可以编译过通过
     }
     int b_;
   }
     int a_;
}

内部类前置声明

c++不允许内部类型的前置声明,这个内部类型包括 内部类 与 内部typedef类型

 class Container::Iterator;
 void Fun(Container::Iterator iter)
 {
   // 编译报错
 } 
class Container {
 class Iterator{
 }
}
2 :
 class Container::Iterator;
 void Fun(Container::Iterator iter)
 {
   // 编译报错
 } 
class CC_Iterator{
 }
class Container {
 typedef CC_Iterator Iterator;
}

猜你喜欢

转载自blog.csdn.net/sdoyuxuan/article/details/80942991
今日推荐