博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++嵌套类的学习
阅读量:6769 次
发布时间:2019-06-26

本文共 957 字,大约阅读时间需要 3 分钟。

     嵌套类,这里指的是语法上的嵌套类,实际上是平行的关系。

     外围类需要使用嵌套类对象作为底层实现,并且该嵌套类只用于外围类的实现且同时可以对用户隐藏该底层实现。

 
  1. # include <iostream> 
  2. using namespace std; 
  3.  
  4. class Outer 
  5.     class Inner 
  6.     { 
  7.     public
  8.         void Fun() 
  9.         { 
  10.             cout << "Inner::Fun..." << endl; 
  11.         } 
  12.     }; 
  13. public
  14.     Inner obj_; 
  15.  
  16.     void Fun() 
  17.     { 
  18.         cout <<"Outer::Fun..."<< endl; 
  19.         obj_.Fun(); 
  20.     } 
  21.  
  22. }; 
  23. //嵌套类为外围类提供服务 
  24. //外围类的使用到了嵌套类的实现,调用了嵌套类的方法 
  25. int main(void
  26.     Outer o; 
  27.     o.Fun(); 
  28.  
  29.     return 0; 

     运行结果:

 

嵌套类中的成员函数可以在它的类体外定义

 

从作用域的角度看,嵌套类被隐藏在外围类之中,该类名只能

在外围类中使用。如果在外围类的作用域使用该域名时,需要

加名字限定。

嵌套类的成员函数对外围类的成员没有访问权,反之亦然。

嵌套类仅仅只是语法上的嵌入,平行的关系,外部也可以使用对象。

 
  1. # include <iostream> 
  2. using namespace std; 
  3.  
  4. class Outer 
  5. public//默认是私有,这里声明为公有,main函数才能    Outer::Inner   i;  
  6.     class Inner 
  7.     { 
  8.       public
  9.              void Fun(); 
  10.                  //{
     
  11.                  // cout << "Inner::Fun..." << endl; 
  12.                  //}     
  13.     }; 
  14. public
  15.       Inner obj_; 
  16.       void Fun() 
  17.       { 
  18.          cout<< "Outer::Fun..." << endl; 
  19.          obj_.Fun(); 
  20.        } 
  21.  
  22. }; 
  23. //嵌套类中的成员函数可以在它的类体外定义 
  24. void Outer::Inner::Fun() 
  25.     cout << "Inner::Fun..." << endl;     
  26.  
  27. int main(void
  28.     //如果是私有的则不行,如果是公有的则可以 
  29.     Outer::Inner  i;  
  30.     i.Fun(); 
  31.  
  32.     return 0; 

运行结果:

 

转载地址:http://lzeeo.baihongyu.com/

你可能感兴趣的文章
排序算法(牢记)
查看>>
昨天开发引入的两个错误--Parcelable
查看>>
ylb:exists(存在)的应用实例
查看>>
[oracle] 系统权限管理
查看>>
图片内容保存到数据库,并从数据库里获取图片
查看>>
JavaScript 时间、格式、转换及Date对象总结
查看>>
令人作呕的OpenSSL
查看>>
计算机中的信息=位+上下文(转)
查看>>
angularjs中 *.min.js.map 404的问题
查看>>
Codeforces Gym 100342C Problem C. Painting Cottages 暴力
查看>>
WPF中Label使用StringFormat
查看>>
Open Live Writer
查看>>
FPGA功耗那些事儿(转载)
查看>>
建造者模式(屌丝专用)
查看>>
Google 地图 API V3 之控件
查看>>
读写文件:每次读入大文件里的一行、读写.CSV文件
查看>>
Toast信息框
查看>>
[翻译]应用程序池和应用程序域的区别
查看>>
最短JavaScript判断是否为IE6、IE的方法
查看>>
PHP同时上传“多个”文件示例,并格式化$_FILES数组信息
查看>>