完善后的程序如下:

#include

using namespace std;

template class ARRAY {

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;
【2022CPP18】已知一维数组类模板ARRAY的定义如下ARRAY与普通一维数组区别是:其重载的运算符 要对下标是否越界进行检查。请完善程序。#includeusing namespace std ;int main class ARRAY private T v ; 指向存放数组数据的空间T为类型参数 int s ; 数组大小 public ARRAYint

原文地址: https://www.cveoy.top/t/topic/fEpk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录