Maison > développement back-end > C++ > L'opérateur [] peut-il être surchargé deux fois pour un accès aux tableaux bidimensionnels ?

L'opérateur [] peut-il être surchargé deux fois pour un accès aux tableaux bidimensionnels ?

Barbara Streisand
Libérer: 2024-12-30 09:19:14
original
472 Les gens l'ont consulté

Can the [] Operator Be Overloaded Twice for Two-Dimensional Array Access?

Opérateur[][] Surcharge pour les tableaux bidimensionnels

La question se pose : l'opérateur [] peut-il être surchargé deux fois pour activer la notation comme function3 pour un tableau à deux dimensions ?

Réponse : Oui, c'est le cas Possible

Pour y parvenir, on peut surcharger l'opérateur[] pour renvoyer un objet qui propose un autre opérateur [] pour accéder à l'élément souhaité. Voici un exemple de code :

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;
};
Copier après la connexion

Cela permet une utilisation comme :

ArrayOfArrays aoa;
aoa[3][5];
Copier après la connexion

Notez que ce qui précède est un exemple simplifié ; Une vérification des limites supplémentaires et d'autres fonctionnalités seraient généralement mises en œuvre.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal