Maison > développement back-end > C++ > Comment puis-je surcharger le `operator[]` avec plusieurs arguments en C ?

Comment puis-je surcharger le `operator[]` avec plusieurs arguments en C ?

Patricia Arquette
Libérer: 2024-11-20 02:40:02
original
218 Les gens l'ont consulté

How Can I Overload the `operator[]` with Multiple Arguments in C  ?

Opérateur[] avec plusieurs arguments en C

Vous pouvez rencontrer des difficultés lorsque vous tentez de définir un opérateur de tableau en C qui prend plusieurs arguments. En utilisant la syntaxe suivante :

const T& operator[](const int i, const int j, const int k) const {
    return m_cells[k*m_resSqr+j*m_res+i];
}

T& operator[](const int i, const int j, const int k) {
    return m_cells[k*m_resSqr+j*m_res+i];
}
Copier après la connexion

Vous recevrez un message d'erreur :

error C2804: binary operator '[' has too many parameters
Copier après la connexion

Solution de contournement (Pre-C 23)

Avant en C 23, la surcharge de l'opérateur[] avec plusieurs arguments n'était pas possible. Au lieu de cela, vous pouvez surcharger Operator().

Résolution (C 23)

Cependant, à partir de C 23, vous pouvez surcharger directement Operator[]. Ceci est démontré dans l'exemple cppreference ci-dessous :

struct V3
{
    double x, y, z;

    constexpr V3 operator[](int i) const {
        return { x, y, z }[i];
    }

    // Alternatively, using std::initializer_list:
    friend constexpr std::initializer_list<double> operator()(const V3& v) {
        return { v.x, v.y, v.z };
    }
};
Copier après la connexion

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