阅读量:3
在 C++ 中,可以通过重载 operator[] 来实现数组或容器的访问操作符。以下是一个示例,演示了如何重载 operator[] 以实现一个简单的类 MyArray 的访问操作符:
#include
class MyArray {
public:
// 构造函数
MyArray(int size) : size_(size), data_(new int[size]) {}
// 析构函数
~MyArray() { delete[] data_; }
// 重载 operator[] 以实现访问操作符
int& operator[](int index) {
if (index < 0 || index >= size_) {
throw std::out_of_range("Index out of range");
}
return data_[index];
}
// 重载 operator[] 以实现常量访问操作符
const int& operator[](int index) const {
if (index < 0 || index >= size_) {
throw std::out_of_range("Index out of range");
}
return data_[index];
}
private:
int size_;
int* data_;
};
int main() {
MyArray arr(5);
// 使用重载的 operator[] 设置和获取元素值
arr[0] = 10;
arr[1] = 20;
arr[2] = 30;
arr[3] = 40;
arr[4] = 50;
// 输出元素值
std::cout << "arr[0] = " << arr[0] << std::endl;
std::cout << "arr[1] = " << arr[1] << std::endl;
std::cout << "arr[2] = " << arr[2] << std::endl;
std::cout << "arr[3] = " << arr[3] << std::endl;
std::cout << "arr[4] = " << arr[4] << std::endl;
return 0;
}
在这个示例中,我们定义了一个名为 MyArray 的类,它包含一个整数数组 data_ 和一个表示数组大小的整数 size_。我们重载了 operator[] 以实现访问操作符,使得可以通过 arr[index] 语法来访问数组元素。同时,我们还重载了常量版本的 operator[],以便在常量对象上使用。
注意,为了确保数组访问的安全性,我们在重载的 operator[] 中添加了边界检查,并在索引超出范围时抛出 std::out_of_range 异常。
以上就是关于“c++ operator[] 如何重载”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm