当前位置: 首页 > 文档资料 > C++大学教程 >

10.2 类型域和 switch 语句

优质
小牛编辑
113浏览
2023-12-01

处理多种不同类型对象的手段之一是使用 switch 语句。switch 语句能够根据每一种对象的类型选择对该对象合适的操作。例如,在形状层次中,每个形状指定自己的类型数据成员,switch 结构可以根据特定对象的类型确定调用哪个 print 函数。

但是,使用 switch 逻辑存在许多问题。例如,程序员可能会忘记应有的类型测试;在一条 switch 语句中可能会忘记测试所有可能的情况;在修改基于 switch 语句的系统时可能会忘记在现有的 switch 语句中插入新类;为了处理新的类型,每次修改 switch 语句都要修改系统中的每一条 switch 语句,这很费时并且容易出错。

正如以后会看到的,利用了虚函数和多态性的程序设计无需使用 switch 逻辑。程序员可以用虚函数机制自动完成等价的逻辑,因而避免与switch逻辑有关的各种各样的错误。

软件工程视点 10.1
使用虚函数和多态性可简化源代码的长度。为支持更简单的顺序代码,虚函数和多态性包含的分支逻辑更少。这种简化有助于程序的测试、调试和维护。