[] 运算符可以重载多次,从而允许创建多维数组。对于二维数组,这种重载使您能够使用 function[row][col] 语法访问元素。
考虑以下示例代码:
class ArrayOfArrays { public: ArrayOfArrays() { _arrayofarrays = new int*[10]; for(int i = 0; i < 10; ++i) _arrayofarrays[i] = new int[10]; } class Proxy { public: Proxy(int* _array) : _array(_array) { } int operator[](int index) { return _array[index]; } private: int* _array; }; Proxy operator[](int index) { return Proxy(_arrayofarrays[index]); } private: int** _arrayofarrays; };
此类允许您创建二维数组并使用重载的 [] 运算符访问其元素。例如,您可以编写:
ArrayOfArrays aoa; aoa[3][5];
此代码将访问 aoa 数组第 3 行第 5 列的元素。请注意,您必须提供适当的边界检查,以确保您不会尝试访问数组定义边界之外的元素。
以上是运算符重载如何在 C 中创建多维数组访问?的详细内容。更多信息请关注PHP中文网其他相关文章!