0
votes

Message d'erreur: "Aucune correspondance pour" Opérateur + = "" Après avoir utilisé "String * + ="

J'ai un problème avec C ++. J'ai utilisé un pointeur de cordes et je voulais ajouter une autre chaîne de manière dynamique. Mais alors j'ai ce erroressage:

Pas de match pour 'Opérateur + =' (Types d'opérande sont 'std :: __ cxx11 :: string * {aka std :: __ cxx11 :: basic_string *}' et 'std :: __ cxx11 :: string {aka std :: __ cxx11 :: basique_string} ') xxx


0 commentaires

3 Réponses :


0
votes

s est un pointeur de chaîne afin qu'il devrait s'agir de ce xxx

si je comprends ce que vous essayez de faire ici, alors normalement en C ++, vous utiliseriez un Référence non un pointeur, vous n'auriez pas besoin de * .


0 commentaires

0
votes

La variable s est un pointeur à un std :: string objet, tenter d'ajouter à elle ajoutera au pointeur lui-même non L'objet qu'il pointe.

Vous devez dréerference le pointeur pour obtenir le std :: string objet: xxx

une solution bien meilleure (IMO) est d'utiliser références au lieu des pointeurs.


0 commentaires

0
votes

Vous pouvez également utiliser std :: string Fonction membre Ajoutez , appendez la chaîne à la fin; XXX

Comme les autres suggérées, utilisez référence au lieu de pointeurs


0 commentaires