C++继承与多态:子类作为父类对象的使用
需积分: 45 95 浏览量
更新于2024-08-08
收藏 3.88MB PDF 举报
"C++编程中的继承与类型兼容性原则,以及C++中C语言的扩展"
在C++中,继承是一种强大的机制,它允许我们创建一个新类(派生类)来扩展或修改已存在的类(基类)。在标题和描述中提到的“继承中的构造和析构”,主要涉及的是在类层次结构中如何处理对象的创建(构造)和销毁(析构)。
3.3.1 类型兼容性原则
这个原则指出,公有派生类的对象可以在需要基类对象的地方使用,这意味着基类和派生类之间存在一种类型的兼容性。这种兼容性体现在以下几个方面:
1. 子类对象可以当作父类对象使用。这意味着你可以将一个子类对象赋值给一个父类类型的变量,或者用子类对象初始化一个父类类型的变量。
2. 子类对象可以直接赋值给父类对象,这通常涉及到隐式类型转换。
3. 父类指针可以直接指向子类对象,这是多态性的基础,因为可以透过父类指针调用子类覆盖或新增的成员函数。
4. 父类引用可以直接引用子类对象,这与父类指针的情况类似,也是多态性的一个体现。
类型兼容规则是实现多态性的重要基础,它使得我们能够设计出更加灵活和可扩展的代码。例如,在基类指针或引用上调用虚函数时,实际执行的函数取决于指针或引用所指向的对象的实际类型,这就是运行时多态。
在提供的代码示例中,`Parent03` 类具有一个 `print` 函数,虽然没有显示,但可以假设它是一个虚函数。如果 `Parent03` 是一个基类,并且有一个派生类 `Child03` 覆盖了 `print` 函数,那么通过父类指针或引用调用 `print` 就会执行 `Child03` 的版本,这就是多态性的应用。
此外,C++还扩展了C语言,提供了面向对象的编程特性。在提供的代码中展示了两种编写求圆周长和面积的方法:
方法1是传统的C风格,使用函数和结构体来处理数据。这种方法是过程导向的,数据和操作数据的函数是分离的。
方法2是C++的面向对象方式,通过定义一个 `Circle` 类来封装数据(半径)和操作(设置半径、计算周长和面积)。类的成员函数提供了封装和数据抽象,使得代码更易读,更具模块化。
在C++中,类不仅可以包含数据成员,还可以包含成员函数,这些函数可以访问和修改类的私有和保护成员。`Set_Radius` 和 `Get_Radius` 是访问和设置半径的例子,而 `Get_Girth` 和 `Get_Area` 则是计算圆的周长和面积。这种面向对象的编程方式提供了更好的代码组织和数据安全性。
C++的继承和类型兼容性原则增强了代码的复用性和灵活性,而面向对象的特性则使得代码更易于管理和维护。
2019-01-17 上传
2019-05-05 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
啊宇哥哥
- 粉丝: 35
- 资源: 3863
最新资源
- python大数据等汇总.zip
- datastructures_algorithms
- Programs.rar_数学计算_C/C++_
- AlphaTrack PRO-开源
- canvas-sketch-render-service:基于HyperDrive的HyperSource服务,可将Canvas Sketch项目转换为生产包
- Magento-Import-Export:该脚本将导出和导入属性,集和产品
- 人工智能实验 个人作业.zip
- VedioSave.rar_视频捕捉/采集_Visual_C++_
- 5个电子字符
- Voldemort271.github.io:..
- 人工智能学习.zip
- cds-file-upload-frontend
- VB三角形动画窗体
- OpenCV.zip_Windows_CE_Visual_C++_
- parks_and_ride_project
- pythonTOexcel.zip