设计一个一维的 int 数组类 IntArray(属性:下标下限、下标上限、 int 型指针),可以任意指定下标范围(初始化时要判断下标是否正确),并重载下 标访问运算符“[]”实现数组类的下标访问。在主函数中(创建一个下标 3-10 的数组 对象,初始化并输出)进行测试。
时间: 2024-03-26 20:39:45 浏览: 135
好的,以下是 IntArray 类的定义及相关运算符重载的实现:
```c++
#include <iostream>
#include <cstdlib>
using namespace std;
class IntArray {
private:
int lower; // 下标下限
int upper; // 下标上限
int* ptr; // 指向 int 数组的指针
public:
// 构造函数
IntArray(int low, int up) {
// 判断下标是否正确
if (up < low) {
cerr << "Error: upper limit should be greater than or equal to lower limit." << endl;
exit(EXIT_FAILURE);
}
lower = low;
upper = up;
ptr = new int[upper - lower + 1];
}
// 析构函数
~IntArray() {
delete[] ptr;
}
// 重载下标访问运算符
int& operator [](int index) {
// 判断下标是否越界
if (index < lower || index > upper) {
cerr << "Error: index out of range." << endl;
exit(EXIT_FAILURE);
}
return ptr[index - lower];
}
};
int main() {
IntArray arr(3, 10);
// 初始化数组
for (int i = 3; i <= 10; i++) {
arr[i] = i * i;
}
// 输出数组
for (int i = 3; i <= 10; i++) {
cout << "arr[" << i << "] = " << arr[i] << endl;
}
return 0;
}
```
运行结果:
```
arr[3] = 9
arr[4] = 16
arr[5] = 25
arr[6] = 36
arr[7] = 49
arr[8] = 64
arr[9] = 81
arr[10] = 100
```
阅读全文
相关推荐
















