A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 诺微_ 中级黑马   /  2014-12-19 00:12  /  914 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

代码如下:
  1. #import <Foundation/Foundation.h>

  2. @interface Score : NSObject
  3. {
  4.     int _cScore;
  5.     int _ocScore;
  6. }
  7. @end

  8. @implementation Score

  9. @end

  10. // 继承:xx 是 xxx
  11. // 组合:xx 拥有 xxx

  12. @interface Student :NSObject
  13. {
  14.     int _no;
  15.     int _age;
  16.     Score *_score;
  17. }

  18. @end

  19. @implementation Student

  20. @end

  21. int main()
  22. {
  23.    
  24.     return 0;
  25. }
复制代码
这里用到的时组合,有个疑问就是在组合关系里,Student类里面是如何访问Score里面的 _cScore、 _ocScore成员变量的??望各位能解答下疑惑!

2 个回复

倒序浏览
因为Student拥有Score的对象_score,也就能通过_score调用它的get方法,从而访问,哪怕_cScore、 _ocScore是私有的。做个不恰当的比喻,就好比你绑架了Score的对象,逼迫他提供自己的私有财产给你。= =
回复 使用道具 举报
从今以后 发表于 2014-12-19 12:05
因为Student拥有Score的对象_score,也就能通过_score调用它的get方法,从而访问,哪怕_cScore、 _ocScore ...

比喻的很恰当哈,其实组合也就是拥有了它其中的所有成员变量和方法,这点和继承一样,只是代码形式及意义上有点差别而已,是吧,谢啦
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马