面向对象编程:构造函数、析构函数与多态性实例
需积分: 38 157 浏览量
更新于2024-08-06
收藏 1.01MB PDF 举报
本文主要讨论了面向对象编程中的关键概念和C++语言中类的构造函数、析构函数以及成员函数的使用。以下是提炼的知识点:
1. **构造函数调用次数**:
- 语句 "AB a(2), b[3], *p[4];" 中,`AB a(2)` 调用了一次构造函数,数组 `b[3]` 包含3个元素,每个元素都会调用构造函数,因此共调用3次。指针 `*p[4]` 不指向任何空间,所以不调用构造函数,总次数为4次。
- "AB (A)b(2), c[3], *p=&a;" 语句中,`AB (A)b(2)` 给了初始参数,调用了一次;`c[3]` 共调用3次无参构造函数;指针 `*p` 引用已存在的 `a`,不调用构造函数,总共4次。
2. **析构函数和构造函数的区别**:
- 构造函数负责对象的初始化,可以带参数,而析构函数用于清理对象资源,无参数且仅在对象生命周期结束时自动调用。
- `delete []px;` 语句会释放动态数组中的n个对象,因此调用n次析构函数。
3. **初始化和构造函数的作用**:
- 对类成员的初始化可以通过构造函数的初始化表来完成,这是优先于计算阶段的过程。
- 类中常量成员和引用成员的初始化同样在构造函数的初始化表中进行。
4. **构造函数参数和析构函数参数**:
- 构造函数可以有任意数量的参数,而析构函数无参数。
5. **类属性和静态成员**:
- 静态数据成员表示的是类的属性,而不是对象的属性,它只存在类的实例中,而非每个对象。
6. **访问控制**:
- 类的静态成员可以被定义为私有、保护或公有。
7. **成员函数对数据成员的访问**:
- 静态成员函数只能访问静态数据成员,而非静态成员函数则可以访问所有类型的(静态和非静态)数据成员。
8. **静态数据成员的初始化**:
- 静态数据成员在全局区进行初始化。
9. **多态性和运算符重载**:
- 多态性使得一个接口支持多种行为,允许向不同对象发送相同消息时产生不同行为。
- 运算符重载允许自定义运算符的行为,但不能改变运算符的优先级和结合性。
这些知识点覆盖了面向对象编程中的基础概念,对于准备期末考试的学生来说,理解和掌握这些要点非常重要。
2021-10-30 上传
2021-05-24 上传
点击了解资源详情
点击了解资源详情
2021-06-16 上传
2021-05-18 上传
2021-06-16 上传
2019-09-12 上传
2021-05-18 上传
七231fsda月
- 粉丝: 31
- 资源: 3973
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫