Bonjour,
je suis entrain de créer une classe String et je veux pouvoir lire et modifier un caractère comme sur cet exemple.
Pouvez vous me dire comment je peux proceder ?Code:
1
2
3 str[ 2 ] = 'i'; cout << str[ 2 ] << '\n';
Merci
Version imprimable
Bonjour,
je suis entrain de créer une classe String et je veux pouvoir lire et modifier un caractère comme sur cet exemple.
Pouvez vous me dire comment je peux proceder ?Code:
1
2
3 str[ 2 ] = 'i'; cout << str[ 2 ] << '\n';
Merci
tu surcharge operator[] de tel sorte qu'une surcharge renvoie une lvalue pour permettre la 1er ligne et qu'une 2eme renvoit une rvalue pour permetre la 2eme ligne.
merci pour ta réponse
mais quelle est la différence entre lvalue et rvalue
Merci
Une lvalue est une 'valeur' que l'on peut mettre à gauche d'un opérateur.
Ex:a++. Ici a est une lvalue,elle est à gauche de ++ .
Une rvalue est une 'valeur' que l'on peut mettre à droite d'un opérateur.
Ex: int p=a. Ici a est une lvalue, elle est à droite de = .
Le plus souvent, on implémente l'opérateur [] de façon à ce qu'il retourne une référence C++ vers le bon caractère.
Merci beaucoup, j'ai réussi à le faire.