【2022CPP18】已知一维数组类模板ARRAY的定义如下ARRAY与普通一维数组区别是:其重载的运算符 要对下标是否越界进行检查。请完善程序。#includeusing namespace std ;int main class ARRAY private T v ; 指向存放数组数据的空间T为类型参数 int s ; 数组大小 public ARRAYint
完善后的程序如下:
#include
using namespace std;
template
private:
T* v; //指向存放数组数据的空间,T为类型参数
int s; //数组大小
public:
ARRAY(int n) {
int i;
v = new T[n]; //创建数组空间
s = n;
for (i = 0; i < n; i++) {
cin >> v[i];
}
}
~ARRAY(void) {
delete[] v; //释放数组空间
}
int size(void) {
return s;
}
T& operator[](int n) { //[ ]运算符重载函数
if (n < 0 || n >= s) {
cerr << "下标越界!";
exit(1);
}
return v[n];
}
};
int main() {
ARRAY<int> arr(5);
for (int i = 0; i < arr.size(); i++) {
cout << arr[i] << " ";
}
cout << endl;
arr[6] = 1; //越界操作,会提示下标越界
return 0;
原文地址: https://www.cveoy.top/t/topic/fEpk 著作权归作者所有。请勿转载和采集!