请编写名为intarray的一个类,类中私有数据成员有:n(类型为int)、指针*p(类型为int);公有函数成员有:将n和指针清0的无参构造函数;带一个整数参数的构造函数,用于初始化n,并为指针p申
时间: 2023-04-29 15:06:03 浏览: 84
这段代码要求编写一个名为intarray的类,类中私有数据成员有:n(类型为int),指针*p(类型为int);公有成员函数有:将n和指针p设为0的无参构造函数,带一个整数参和指针参的构造函数,带一个整数参数的构造函数,带一个整数参数的构造函数,带一个整数参数和一个整数参的构造函数,带一个整数参数和一个整数参数的构造函数,用于初始化n并为指针p分配内存,以及一个构造函数,带一个整数参数的构造函数,用于初始化n并申请一个整数参数的构建函数,用于初始化n并为指针p分配内存,用于初始化n并为指针p分配内存,用于初始化n并为指针p分配内存,以及一个申请一个整数参数和一个整数参的构造函数,用于初始化n和指针p。
相关问题
构建一个整型数组(Intarray) 类,该类私有成员只包含int*型指针p(指向数组首地址)以及整型数组长度length , 该类包括两个公有成员函数int getdata(int i) 和void setdata(int i, int value), 分别用取数组第i个元素以及设置第i个元素的值为value。 注:用户通过构造函数传入参数n来初始化length,并在构造函数内用new方法申请长度为n的int型空间用来存放数据。析构函数里需要用delete释放掉。
好的!根据你的要求,我已经理解你需要一个名为Intarray的整型数组类,包括构造函数、析构函数以及两个公有成员函数getdata和setdata。下面是代码实现:
```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) {
return p[i];
}
// 设置第i个元素的值为value
void setdata(int i, int value) {
p[i] = value;
}
};
int main() {
// 测试
Intarray arr(5);
for (int i = 0; i < 5; i++) {
arr.setdata(i, i + 1);
}
for (int i = 0; i < 5; i++) {
std::cout << arr.getdata(i) << " ";
}
return 0;
}
```
在这个类中,我们使用了一个指向int型数组的指针p,它的长度由构造函数初始化并分配内存空间。getdata和setdata函数用于访问数组元素。在main函数中,我们创建了一个长度为5的Intarray对象,并设置了1到5的值,最后打印输出数组元素。如果有任何问题,欢迎随时问我!
构建一个整型数组(Intarray)类,该类私有成员只包含 int*型 指针 p(指向数组首地址)以及整型数组长度 length ,该类包括两个公有成员函数 int getdata(int i) 和 void setdata(int i,int value),分别用取数组第 i 个元 素以及设置第 i 个元素的值为 value。 注:用户通过构造函数传入参数 n 来初始化 length,并在构造函数 内用 new 方法申请长度为 n 的 int 型空间用来存放数据。析构函数 里需要用 delete 释放掉。
下面是该整型数组类的实现:
```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 函数中需要判断数组索引是否超出数组长度的范围。