动态创建C++对象与数组指针操作

需积分: 10 2 下载量 69 浏览量 更新于2024-08-15 收藏 468KB PPT 举报
"这篇资源是关于C++编程中动态创建对象、数组指针以及字符串的知识。通过示例代码,展示了动态内存分配、对象数组的创建和使用,以及如何通过指针操作数组对象。" 在C++编程中,动态内存分配是一项重要的技能,它允许在程序运行时根据需要分配和释放内存。在给定的资源中,提到了几个关键知识点: 1. **动态创建对象**: - 使用`new`关键字可以动态地创建对象。在`Step One`中,`new Point`创建了一个没有初始值的对象,这会调用默认构造函数。而在`Step Two`中,`new Point(1,2)`创建了一个带有初始值的对象,调用了有参数的构造函数。 - 当不再需要对象时,使用`delete`关键字可以释放对应的内存,同时会调用析构函数。 2. **动态创建对象数组**: - 在`Step Three`中,`new Point[2]`动态创建了一个Point对象的数组,这里调用的是默认构造函数。请注意,如果不使用`delete[]`来释放数组,那么这部分内存将不会被释放。数组的动态内存管理需要特别注意,因为它们不是单个对象,而是对象的集合。 3. **数组**: - 数组在C++中是预定义的内存块,用于存储相同类型的数据。在`例6-1`中,声明了两个整型数组`A`和`B`,并对它们进行了初始化和赋值操作。 - 数组可以作为函数参数传递。在`例6-2`中,函数`RowSum`接受一个二维数组`A`和它的行数`nrow`,通过数组名实参传递首地址,实现了计算数组每一行元素之和的功能。 4. **对象数组**: - 类的对象可以被组织成数组,这种数据结构称为对象数组。例如,`DATE dates[3]`声明了一个DATE类对象的数组,每个元素都可以单独访问和操作。 - 对象数组的初始化和赋值与普通数组类似,但需要注意调用适当的构造函数。在示例中,`DATE`对象数组被初始化为包含特定日期的值。 5. **指针与数组**: - 指针可以用来存储数组的地址,使得可以间接访问和操作数组元素。在动态创建对象数组后,`ptr1`指针就指向了数组的第一个元素。通过指针,可以改变数组中的对象状态,如`ptr1[0].Move(5,10);`。 6. **字符串**: 虽然在提供的内容中没有直接涉及字符串的详细操作,但在C++中,字符串通常是由字符数组表示的。可以使用标准库中的`std::string`类来处理字符串,提供丰富的操作方法。 这些概念是C++编程的基础,理解并熟练运用它们对于编写高效且健壮的代码至关重要。在实际编程中,动态内存管理和数组的使用需要特别小心,以避免内存泄漏和其他潜在错误。