C++编程:动态数组分配与面向对象基础

需积分: 9 81 下载量 90 浏览量 更新于2024-08-23 收藏 3.83MB PPT 举报
"C++动态分配数组,东南大学何洁月教授C++课程" 在C++编程语言中,动态分配数组是一种在运行时根据需要分配内存的方法。与静态数组不同,动态数组的大小可以在程序执行期间确定,这为处理不确定数量的数据提供了灵活性。以下是关于动态分配数组的一些关键知识点: 1. **动态分配一维数组**: 使用`new`运算符可以为一维数组分配内存。例如: ```cpp int *arr = new int[5]; ``` 这将在堆上分配足够存储5个整数的空间,并返回一个指向数组首元素的指针。记得在不再需要数组时使用`delete[]`释放内存。 2. **动态分配多维数组**: 多维数组的动态分配稍微复杂一些。对于二维数组,可以这样做: ```cpp char (*fp)[3]; fp = new char[2][3]; ``` 在这个例子中,`fp`是一个指向`char`数组的指针,该数组有2行3列。请注意,释放多维数组时同样使用`delete[]`,而不是`delete`,因为`new`返回的是一个指向数组的指针。 3. **数组元素的个数计算**: 当使用`new`分配多维数组时,返回的指针是类型为`T(*)[n]`的形式,其中`T`是元素类型,`n`是除最左边维度之外的其他维度的乘积。例如,`new char[2][3]`返回一个`char(*)[3]`类型的指针,表示它指向一个包含3个`char`元素的数组,而这个数组本身又包含2个这样的数组。 4. **C++课程内容**: - **培养目标**:课程旨在帮助学生建立基本的程序设计概念,掌握C++语言,理解面向对象思想,并提升编程和调试技能。 - **课程章节**: - 第1章:介绍C++和面向对象编程的基础知识。 - 第2章:介绍C++语言的基本元素,如数据类型、表达式、输入输出、控制结构和自定义数据类型。 - 第3章:讲解函数的定义、使用及其各种特性,如内联函数、默认参数、重载和函数模板。 - 第4章:深入讨论面向对象编程,包括类、对象、构造函数、析构函数、组合以及类模板。 - 第5章及以上:可能涵盖更多高级主题,如继承、多态性等。 5. **面向对象编程**: 面向对象编程(OOP)是C++的核心特性之一,它基于三个主要概念:封装、继承和多态。OOP允许创建类来抽象数据和行为,通过构造函数和析构函数管理对象的生命周期,通过继承实现代码复用,通过多态提供更灵活的设计。 6. **函数和类模板**: 函数模板和类模板允许编写泛型代码,可以应用于多种数据类型,提高了代码的可重用性和效率。 7. **内存管理**: C++程序员必须手动管理内存,使用`new`和`delete`操作符分配和释放内存。忘记释放内存可能导致内存泄漏,这是程序中的一个严重问题。 通过东南大学何洁月教授的C++课程,学生将全面学习C++的基础知识和面向对象编程技术,从而具备编写高效、可靠代码的能力。