Maison >développement back-end >C++ >Comment surcharger l'opérateur [] pour l'accès aux tableaux bidimensionnels en C ?
Surcharge de l'opérateur [] pour les tableaux bidimensionnels
Les opérateurs, tels que [], peuvent être surchargés pour fournir un comportement personnalisé pour des types de données. Dans le cas de tableaux bidimensionnels, il est possible de surcharger l'opérateur [] deux fois, permettant une syntaxe pratique et intuitive.
Surcharge pour plusieurs indices
Pour surcharger l'opérateur [] pour un tableau à deux dimensions, vous pouvez définir une classe qui représente le tableau lui-même. Dans cette classe, vous pouvez définir l'opérateur [] deux fois, un pour chaque index.
class TwoDimensionalArray { public: int operator[](int index1) { // Return a one-dimensional array } int operator[](int index1, int index2) { // Access the element at the given indices } };
Classe proxy pour les tableaux imbriqués
Vous pouvez également utiliser un classe proxy pour représenter le tableau unidimensionnel renvoyé par la première surcharge. Cela permet une syntaxe pratique pour accéder aux éléments à l'aide de plusieurs index.
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; };
Utilisation
Avec cette implémentation, vous pouvez utiliser l'opérateur surchargé [] pour accéder aux éléments dans le tableau bidimensionnel comme ceci :
ArrayOfArrays aoa; aoa[3][5];
Cette syntaxe est similaire à l'accès aux éléments dans un tableau bidimensionnel ordinaire, ce qui la rend facile à utiliser et comprendre.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!