什么时候应该用到友元类
2011-09-21 21:16
281 查看
什么时候希望一个类成为另一个类的友元类呢?我们来看一个例子:
假定需要编写一个模拟电视机和遥控器的简单程序。决定定义一个Tv类和一个Remote类,来分别表示电视机和遥控器。很明显,这两个类之间应当存在某种关系,但是什么样的关系呢?遥控器并非电视机,反之亦然,所以公有继承的is-a关系并不适用。遥控器也非电视机的一部分,反之亦然,因此包含或私有继承和保护继承的has-a关系也不适用。事实上,遥控器可以改变电视机的状态,这表明应将Remote类作为Tv类的一个友元。
假定需要编写一个模拟电视机和遥控器的简单程序。决定定义一个Tv类和一个Remote类,来分别表示电视机和遥控器。很明显,这两个类之间应当存在某种关系,但是什么样的关系呢?遥控器并非电视机,反之亦然,所以公有继承的is-a关系并不适用。遥控器也非电视机的一部分,反之亦然,因此包含或私有继承和保护继承的has-a关系也不适用。事实上,遥控器可以改变电视机的状态,这表明应将Remote类作为Tv类的一个友元。
相关文章推荐
- 一开始实现的时候,不知道贝塞尔曲线,自己去思考其他方法实现了。怎么想到用到贝塞尔曲线?以后碰到类似问题,应该先在网上找找都有什么方法实现。
- 当push的时候应该注意的ODEX到底是什么文件
- 什么时候会用到拷贝构造函数?
- 当我们和孩子谈论机器人的时候应该谈什么? | 精选
- 重写Java 的equals和hashcode方法的时候应该注意什么
- 什么时候应该使用 ==?什么时候应该使用 Equals?
- 什么时候应该使用 工厂模式
- 什么时候应该将形参定义为引用类型。什么时候不应该将形参定义为引用。
- 什么时候应该使用Web Service
- 什么时候应该使用 ==?什么时候应该使用 Equals?
- C++ 中什么时候应该在堆上分配资源,什么时候应该在栈上分配?
- 什么时候应该进行影像的大气校正(译)
- 什么时候会用到shell编程
- 技术面试的时候应该了解公司点什么
- 使用SVN时候我们应该注意些什么?
- 有人知道新房验收时候应该注意什么吗
- 什么时候应该使用==?什么时候应该使用Equals?(如何判断值相等还是引用相等。)
- 闲来无事,写点控件的应用,说不定什么时候能用到
- 什么时候应该使用Web Service
- 什么时候应该使用C#的属性