对象数组
C++ 对象数组是将多个同类型的对象封装为一个数组,在内存中连续地占据一块地址空间。数组可以通过索引访问每个对象,从而对其进行初始化、赋值和操作。下面给出一个对象数组的例子:
#include <iostream>
using namespace std;
class Point {
public:
int x, y;
Point() {x = 0; y = 0;}
Point(int a, int b) {x = a; y = b;}
};
int main() {
// 定义包含 5 个 Point 对象的数组
Point arr[5];
// 初始化数组元素
arr[0] = Point(1, 2);
arr[1] = Point(3, 4);
arr[2] = Point(5, 6);
arr[3] = Point(7, 8);
arr[4] = Point(9, 10);
// 访问数组元素
for (int i = 0; i < 5; i++) {
cout << "arr[" << i << "]: (" << arr[i].x << ", "
<< arr[i].y << ")" << endl;
}
return 0;
}
上述代码中,我们使用 Point
类定义了一个对象数组 arr
,其中每个元素都是 Point
类型的对象。在主函数中,我们使用构造函数来初始化数组元素,并使用循环结构遍历并输出这些对象的坐标。
对象指针
C++ 对象指针是存储另一个对象地址的变量。通过指针,我们可以动态地分配内存并创建对象、操作对象、传递对象等。下面给出一个对象指针的例子:
#include <iostream>
using namespace std;
class Point {
public:
int x, y;
Point() {x = 0; y = 0;}
Point(int a, int b) {x = a; y = b;}
};
int main() {
// 创建 Point 对象指针
Point *ptr = new Point(1, 2);
// 操作对象指针
cout << "ptr: (" << ptr->x << ", " << ptr->y << ")" << endl;
ptr->x = 3;
ptr->y = 4;
cout << "ptr: (" << ptr->x << ", " << ptr->y << ")" << endl;
// 释放指针指向的内存
delete ptr;
return 0;
}
上述代码中,我们使用 new
运算符在堆中分配内存,并将返回的指针赋值给 ptr
变量。接着,我们使用箭头 ->
运算符来操作指针所指向的对象,调用构造函数对其进行初始化,并输出其属性值。最后,我们使用 delete
运算符释放指针所指向的内存。