源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C++嵌套类与局部类详细解析

  • 时间:2021-01-21 16:32 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C++嵌套类与局部类详细解析
[b]1. 嵌套类 [/b]外围类需要使用嵌套类对象作为底层实现,并且该嵌套类只用于外围类的实现,且同时可以对用户隐藏该底层实现。 从作用域的角度看,嵌套类被隐藏在外围类之中,该类名只能在外围类中使用。如果在外围类之外的作用域使用该类名时,需要加名字限定。 嵌套类中的成员函数可以在它的类体外定义。 嵌套类的成员函数对外围类的私有成员没有访问权,反之亦然。 嵌套类仅仅只是语法上的嵌入。 [b]2. 局部类 [/b]类也可以定义在函数体内,这样的类被称为局部类(loacl class)。局部类只在定义它的局部域内可见。 局部类的成员函数必须被定义在类体中。 局部类中不能有静态成员函数。 在实践中,局部类很少使用。 下面给出一段代码来说明:
[u]复制代码[/u] 代码如下:
#include<iostream> using namespace std; class Outer { public:  class Inner  {  public:   void Fun();  }; public:     Inner obj_;  void Fun()  {    cout<<"Outer::Fun...."<<endl;    obj_.Fun();  } }; void Outer::Inner::Fun() {   cout<<"Inner::Fun..."<<endl; } void Fun() {   class LocalClass   {   public:    int num_;    void Init(int num)    {      num_=num;    }    void Display()    {      cout<<"num_"<<num_<<endl;    }   };   LocalClass lc;   lc.Init(10);   lc.Display(); } int main() {   Outer o;   o.Fun();   Outer::Inner i;   i.Fun();   Fun();   return 0; }
运行结果: [img]http://files.jb51.net/file_images/article/201309/201309120859584.jpg[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部