La concaténation des chaînes ne fonctionne pas comme prévu

Je sais que c’est un problème commun, mais à la recherche de références et d’autres documents, je ne trouve pas de réponse claire à cette question.

Considérez le code suivant:

#include  // ... // in a method std::ssortingng a = "Hello "; std::ssortingng b = "World"; std::ssortingng c = a + b; 

Le compilateur m’indique qu’il ne peut pas trouver un opérateur surchargé pour char[dim] .

Est-ce que cela signifie que dans la chaîne il n’y a pas d’opérateur +?

Mais dans plusieurs exemples, il y a une situation comme celle-ci. Si ce n’est pas la bonne façon de concilier plus de chaînes, quelle est la meilleure façon?

Votre code, tel qu’il est écrit, fonctionne. Vous essayez probablement de réaliser quelque chose sans rapport, mais similaire:

 std::ssortingng c = "hello" + "world"; 

Cela ne fonctionne pas car pour C ++, cela semble être un ajout de deux pointeurs de caractères. Au lieu de cela, vous devez convertir au moins l’un des littéraux char* en std::ssortingng . Soit vous pouvez faire ce que vous avez déjà posté dans la question (comme je l’ai dit, ce code fonctionnera) ou vous procédez comme suit:

 std::ssortingng c = std::ssortingng("hello") + "world"; 
 std::ssortingng a = "Hello "; a += "World"; 

Je ferais ceci:

 std::ssortingng a("Hello "); std::ssortingng b("World"); std::ssortingng c = a + b; 

Qui comstack dans VS2008.

 std::ssortingng a = "Hello "; std::ssortingng b = "World "; std::ssortingng c = a; c.append(b);