C++ 数组越界检查:使用重载运算符 [] 实现 Border 类
C++ 数组越界检查:使用重载运算符 [] 实现 Border 类
以下是一个用 C++ 编写的 Border 类的示例,它通过重载运算符 '[]' 来检查数组是否越界:
#include <iostream>
class Border {
private:
int size;
public:
Border(int s) : size(s) {}
bool operator[](int index) {
if (index < 0 || index >= size) {
std::cout << '数组越界!' << std::endl;
return false;
}
return true;
}
};
int main() {
int arr[5] = {1, 2, 3, 4, 5};
Border border(5);
for (int i = -1; i < 7; i++) {
if (border[i]) {
std::cout << 'arr[' << i << '] = ' << arr[i] << std::endl;
}
}
return 0;
}
在上面的示例中,Border 类重载了运算符 '[]',并在其中检查了数组是否越界。在主函数中,我们创建了一个大小为 5 的整型数组 arr,并创建了一个 Border 对象 border,大小为 5。然后,我们通过循环尝试访问数组中的元素,使用 border 对象的 '[]' 运算符进行越界检查。如果数组越界,将输出相应的错误信息;否则,输出数组元素的值。
运行上述代码,将得到以下输出:
数组越界!
arr[0] = 1
arr[1] = 2
arr[2] = 3
arr[3] = 4
arr[4] = 5
数组越界!
原文地址: https://www.cveoy.top/t/topic/f31z 著作权归作者所有。请勿转载和采集!