Comment créer et utiliser un opérateur de flèche de classe?
Donc, après avoir cherché partout, je n'arrive pas à trouver comment créer une classe flèche de l'opérateur, c'est à dire,
class Someclass
{
operator-> () /* ? */
{
}
};
J'ai juste besoin de savoir comment travailler avec elle et l'utiliser de façon appropriée.
- quels sont ses apports?
- en quoi est-il de retour?
- comment dois-je déclarer convenablement/prototype?
source d'informationauteur Codesmith | 2011-02-08
Vous devez vous connecter pour publier un commentaire.
L'opérateur -> est utilisé pour la surcharge de l'accès des membres. Un petit exemple:
Ce sorties:
La flèche de l'opérateur n'a pas d'entrée. Techniquement, il peut renvoyer tout ce que vous voulez, mais il doit retourner quelque chose qui est un pointeur ou peut devenir un pointeur par enchaînés
->
opérateurs.La
->
opérateur automatiquement déréférence sa valeur de retour avant d'appeler son argument à l'aide de l'intégré dans le déréférencement de pointeur, pasoperator*
alors vous pourriez avoir la classe suivante:L'utiliser comme:
qui est transformé par le compilateur dans:
(avec autant de
.operator->()
que nécessaire pour retourner un vrai pointeur) et de sortieNoter, cependant, que vous pouvez effectuer les opérations suivantes:
en ligne: https://wandbox.org/permlink/Is5kPamEMUCA9nvE
De Stroupstrup:
http://en.wikibooks.org/wiki/C++_Programming/Operators/Operator_Overloading#Address_of.2C_Reference.2C_and_Pointer_operators
La "flèche" de l'opérateur peut être surchargé par:
sera traduit en