条款32:确定public继承中塑造出来的是IS-A关系而不是其他的关系
首先考虑的是一个很典型的关系,就是矩形与正方形的关系:
 class Recantagle{
     virtual void setHeight(int);
     virtual void setWidth(int);
     virtual int height(int)const;
     virtual int width(int)const;
     ...
 };
 void makeBigger(Recantagle & r)
 {
     int oldHeight = height();
     setWidgth(wid);
     assert(height() == oldHeight);
 }
条款32:确定public继承中塑造出来的是IS-A关系而不是其他的关系的更多相关文章
- 读书笔记 effective c++  Item 32 确保public继承建立“is-a”模型
		
1. 何为public继承的”is-a”关系 在C++面向对象准则中最重要的准则是:public继承意味着“is-a”.记住这个准则. 如果你实现一个类D(derived)public继承自类B(ba ...
 - Effective C++ 笔记:条款 32 确定你的public继承塑造出正确的is-a关系
		
32 : Make sure public inheritance models "is-a." 0 引言 Inheritance and Object-Oriented Desi ...
 - Effective C++ -----条款32:确定你的public继承塑模出is-a关系
		
“public继承”意味is-a.适用于base classes身上的每一件事情一定也适用于derived classes身上,因为每一个derive class对象也都是一个base class对象 ...
 - 条款32:确定你的public继承塑模出is-a 关系(Make sure public inheritacne models "is-a")
		
NOTE : 1."public继承"意味is-a.适用于base classes 身上的每一件事一定也适用于derived classes身上,因为每一个derived cla ...
 - 读书笔记_Effective_C++_条款三十二:确定你的public继承继承塑模出is-a关系
		
这一条款是说的是公有继承的逻辑,如果使用继承,而且继承是公有继承的话,一定要确保子类是一种父类(is-a关系).这种逻辑可能与生活中的常理不相符,比如企鹅是生蛋的,所有企鹅是鸟类的一种,直观来看,我们 ...
 - 一个Public的字段引起的,谈谈继承中的new
		
一直觉得对c#面向对象这块已经掌握的很好了,因为正常情况下字段一般我们设计成私有的,今天突然想到一个实验,如下有两个很简单的类: public class Farther { ; public vir ...
 - 【32】确定你的public继承塑模出Is-A关系
		
1.public继承表示Is-A关系,也就是满足里氏代换.与之相对应的,private继承表示根据某物实现出,不满足里氏代换.子类对象初始化父类引用,编译通不过. 2.考虑下面的需求,企鹅继承鸟,Bi ...
 - Effective C++ Item 32 确保你的 public 继承模子里出来 is-a 关联
		
本文senlie原版的,转载请保留此地址:http://blog.csdn.net/zhengsenlie 经验:"public继承"意味 is-a.适用于 base classe ...
 - c/c++ 继承与多态 继承中的public, protected, private
		
问题:类B私有继承类A,类A有个protected成员,那么在类B的成员函数里是否可以使用类A的protected成员? 可以使用. 估计有的同学说不对吧,类B都私有继承了类A了,怎么还能访问类A的p ...
 
随机推荐
- Ionic上滑刷新
			
上拉加载用的是ionic控件ion-infinite-scroll,使用示例如下: <ion-infinite-scroll (ionInfinite)="doInfinite($ev ...
 - java架构师之路:推荐的15本书
			
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从.我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水 ...
 - cas添加验证码
			
cas添加验证码,折腾了好久,终于整理好了,很大部分都是借鉴http://binghejinjun.iteye.com/blog/1255293这个的.但是他的有一个很不好的地方就是不能提升验证码错误 ...
 - 学员管理系统(简单的Django设计)
			
学员管理系统(简单的Django设计) 学员管理系统 项目规划阶段 项目背景 近年来老男孩教育的入学学员数量稳步快速增长,传统的excel统计管理学员信息的方式已经无法满足日渐增长的业务需求.因此公司 ...
 - window下rails4.1 发生TZInfo::DataSourceNotFound 错误
			
在官网上学习rails 4.1 ,启动rails server之后发生了如下错误 $ rails serverBooting WEBrickRails 4.1.0 application starti ...
 - linux redhat下oracle11G安装
			
首先由于使用的是虚拟机,所有要修改ip 在LINUX下修改IP分为二种情况, 1.调试时修改IP,仅在当前生效,重启后恢复为原有IP ifconfig eth0 192.168.63.27 netma ...
 - js刷新页面 location.reload()
			
在javascript编程中,多使用location.reload实现页面刷新. 例子: 代码示例: window.location.href=window.location.href; window ...
 - C#  Json格式
			
using LitJson; //自定义Json类 JsonDataResult jsondata = new JsonDataResult() { Success = false }; HttpCo ...
 - Linux静默安装Oracle
			
打算在云服务器上装oracle服务,以前DBA美眉都是在图形化界面下安装,这次抓瞎了.赶紧上网查查,静默安装可以解决问题.于是乎赶紧开始部署,过程如下.安装环境:操作系统:CentOS 7内存:11G ...
 - EFM32JG系列MCU内部温度传感器使用方法
			
在很多电子类应用场合中,我们经常需要采集产品工作的周围环境温度,一般采取的方式有两种: 1)外加温度传感器 2)采用MCU内部温度传感器 外加温度传感器会增加产品的成本以及布板空间,所以在很多场合,我 ...