C++开发中级


804 浏览 5 years, 4 months

1 使用继承构建类

版权声明: 转载请注明出处 http://www.codingsoho.com/

使用继承构建类

在前面,您己经了解了“是一个”关系是实际对象在继承层次中的存在模式。在编程时,如果想要基于某个类编写另一个类,或者对某个类进行少量修改,都会涉及这个模式。完成这一目标的方法之一是将代码从一个类复制出来,然后粘贴到另一个类。之后修改相关部分代码,就可以创建一个与原始类稍有不同的新类。然而这种方法会让OOP程序员感到不快,原因如下:

  • 修订原始类的bug不会影响新类,因为两个类包含完全独立的代码。
  • 编译器不知道这两个类之间的任何关系,因此不具备多态性—这两个类不是同一事物的不同变种。
  • 这种方法没有建立真正的“是一个”关系。新的类与原始类非常相似是因为共享了代码,而不是因为它们是同一类对象。
  • 原始代码可能无法获得。其存在形式可能是预编译的二进制格式,因此不可能复制和粘贴这些代码。

不要惊讶,C++为定义真正的“是一个”关系提供了内建的支持。C++“是一个”关系的特征将在下面进行讲述。