Maison > développement back-end > C++ > le corps du texte

Comment C gère-t-il les opérateurs de tableaux multi-arguments ?

Linda Hamilton
Libérer: 2024-11-19 11:12:02
original
299 Les gens l'ont consulté

How Does C   Handle Multi-Argument Array Operators?

Opérateur de tableau multi-arguments en C ?

En C, les opérateurs peuvent être surchargés pour fournir un comportement personnalisé aux opérateurs intégrés tels que []. Cependant, avant C 23, la surcharge de [] pour accepter plusieurs arguments n'était pas possible.

Support limité avant C 23

Tentatives de définition d'un multi-argument [] L'opérateur entraînerait une erreur du compilateur, comme le montre l'exemple de code :

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

Ce code déclenchera l'erreur :

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

Solution de contournement avant C 23

En guise de solution de contournement, on pourrait surcharger l'opérateur () à la place :

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

Support en C 23

À partir de C 23, le langage inclut la prise en charge des opérateurs multi-arguments []. En conséquence, le code présenté précédemment serait valide et permettrait de transmettre plusieurs arguments d'indice directement à l'opérateur [].

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!

source:php.cn
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