构建一个整型数组(Intarray)类,该类私有成员只包含 int*型 指针 p(指向数组首地址)以及整型数组长度 length ,该类包括两个公有成员函数 int getdata(int i) 和 void setdata(int i,int value),分别用取数组第 i 个元 素以及设置第 i 个元素的值为 value。 注:用户通过构造函数传入参数 n 来初始化 length,并在构造函数 内用 new 方法申请长度为 n 的 int 型空间用来存放数据。析构函数 里需要用 delete 释放掉。
时间: 2024-02-01 10:14:57 浏览: 143
下面是该整型数组类的实现:
```c++
#include <iostream>
class Intarray {
private:
int* p; // 整型数组指针
int length; // 整型数组长度
public:
// 构造函数,初始化整型数组
Intarray(int n) {
length = n;
p = new int[length];
}
// 析构函数,释放整型数组内存空间
~Intarray() {
delete[] p;
}
// 获取数组第 i 个元素的值
int getdata(int i) {
if (i < 0 || i >= length) {
std::cout << "Index out of range!" << std::endl;
return -1;
}
return p[i];
}
// 设置数组第 i 个元素的值为 value
void setdata(int i, int value) {
if (i < 0 || i >= length) {
std::cout << "Index out of range!" << std::endl;
return;
}
p[i] = value;
}
};
int main() {
Intarray arr(5); // 创建一个长度为 5 的整型数组对象
for (int i = 0; i < 5; i++) {
arr.setdata(i, i * i); // 设置数组元素的值
}
for (int i = 0; i < 5; i++) {
std::cout << arr.getdata(i) << " "; // 获取数组元素的值并输出
}
std::cout << std::endl;
return 0;
}
```
在上面的代码中,类的私有成员包括一个 int 类型的指针 p 和一个整型数组长度 length。构造函数通过传入参数 n 来初始化整型数组的长度,然后用 new 方法申请长度为 n 的 int 型空间用来存放数据。析构函数里需要用 delete 释放掉整型数组内存空间。公有成员函数包括 getdata 和 setdata,分别用于获取和设置整型数组的元素值。在 getdata 和 setdata 函数中需要判断数组索引是否超出数组长度的范围。
阅读全文