注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

逍遥子 曰:

得失失得 何必患得患失 舍得得舍 不妨不舍不得

 
 
 

日志

 
 

[原]理解类级别的访问控制权限——类的成员函数可以访问该类所有对象的私有成员  

2014-02-26 15:48:49|  分类: C/C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

无论是java还是c++都提供了三种访问控制权限:

public、private、protected

它们提供类级别的访问控制,但是类的成员函数可以访问同一类的所有对象的所有私有成员,例如下面的C++示例:

  1. #include "stdafx.h"  
  2. #include <stdlib.h>  
  3. class test  
  4. {  
  5. protected:  
  6. private:  
  7.     int ivalue;  
  8.     int _get_and_add()  
  9.     {  
  10.         return (ivalue + 10);  
  11.     }  
  12. public:  
  13.     test()  
  14.     {  
  15.         ivalue = 0;  
  16.     }  
  17.     void setValue(int _ivalue)  
  18.     {  
  19.         ivalue = _ivalue;  
  20.     }  
  21.     void setValue(test t)  
  22.     {  
  23.         ivalue = t.ivalue;  
  24.     }  
  25.     void add(test t)  
  26.     {  
  27.         ivalue += t._get_and_add();  
  28.     }  
  29.     int getValue()  
  30.     {  
  31.         return ivalue;  
  32.     }  
  33. };  
  34.   
  35. int _tmain(int argc, _TCHAR* argv[])  
  36. {  
  37.     test t1,t2;  
  38.     printf("1. value:\n");  
  39.     printf("  t1: %d \n",t1.getValue());  
  40.     printf("  t2: %d \n",t2.getValue());  
  41.   
  42.     t2.setValue(100);  
  43.     t1.setValue(t2);  
  44.     printf("2.after setValue:\n");  
  45.     printf("  t1: %d \n",t1.getValue());  
  46.     printf("  t2: %d \n",t2.getValue());  
  47.   
  48.   
  49.     t1.add(t2);  
  50.     printf("3.after add_other:\n");  
  51.     printf("  t1: %d \n",t1.getValue());  
  52.     printf("  t2: %d \n",t2.getValue());  
  53.     system("pause");  
  54.     return 0;  
  55. }  



其中类test的成员函数:

  1. void setValue(test t)  
  2. {  
  3.     ivalue = t.ivalue;  
  4. }  


  1. void add(test t)  
  2. {  
  3.     ivalue += t._get_and_add();  
  4. }  


分别访问了同类的其他对象(由参数传递过来)的私有数据成员 ivalue以及私有函数,上述程序的输出结果为:

[原]理解类级别的访问控制权限——类的成员函数可以访问该类所有对象的私有成员 - 逍遥子 - 逍遥子 曰:

 

  评论这张
 
阅读(431)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017