Thinking in C++: 第1章 继承:类型关系

本文探讨了C++中的继承概念,通过垃圾再生机和形体问题两个实例,介绍了如何利用继承创建类的层次结构,以更好地描述问题并简化解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文内容摘抄自C++经典书籍:《Thinking in C++》

1.1.2 继承:类型关系

类型不仅仅说明一组对象上的约束,还说明与其他类型之间的关系。两个类型可以有共同的特性和行为,但是,一个类型可能包括比另一个类型更多的特性,也可以处理更多的消息(或对消息进行不同的处理)。继承表示了基本类型和派生类型之间的相似性。一个基本类型具有所有由它派生出来的类型所共有的特性和行为。程序员创建一个基本类型以描述系统中一些对象的思想核心。由这个基本类型派生出其他类型,表达了认识该核心的不同途径。


例如,垃圾再生机要对垃圾进行分类。这里基本类型是“垃圾”, 每件垃圾有重量、价值等等,并且可以被破碎、融化或分解。这样,可以派生出更特殊的垃圾类型,它们可以有另外的特性(瓶子有颜色)或行为(铝可以被压碎,钢可以被磁化)。另外,有些行为可以不同(纸的价值取决于它的种类和状态)。程序员可以用继承建立类的层次结构,在该层次结构中用类型术语来表述他需要解决的问题。


第二个例子是经典的形体问题,可以用于计算机辅助设计系统或游戏模拟中。这里基本类型是“形体”,每个形体有大小、颜色、位置等。每个形体能被绘制、擦除、移动、着色等。由此,可以派生出特殊类型的形体:圆、正方形、三角形等,它们中的每一个都有另外的特性和行为,例如,某些形体可以翻转。有些行为可以不同(计算形体的面积)。类型层次结构既体现了形体间的类似,又体现了它们之间的区别。


用与问题相同的术语描述问题的解是非常有益的,这样,从问题描述到解的描述之间就不需要很多中间模型(程序语言解决大型问题,就需要中间模型)。面向对象之前的语言,描述问题的解不可避免地要用计算机术语。使用对象术语,类型层次结构是主要模型,所以可以从现实世界中的系统描述直接进入代码中的系统描述。实际上,使用面向对象设计,人们的困难之一是从开始到结束过于简单。一个已经习惯于寻找复杂解的、训练有素的头脑,往往会被问题的简单性难住。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值