これはよくある問題だとはわかっていますが、参考資料やその他の資料を探しても、この質問に対する明確な答えは見つかりません。
次のコードを考えてみましょう。
#include <string>
// ...
// in a method
std::string a = "Hello ";
std::string b = "World";
std::string c = a + b;
コンパイラは、 のオーバーロードされた演算子が見つからないと表示しますchar[dim]
。
文字列に + 演算子がないことを意味しますか?
しかし、いくつかの例では、このような状況があります。これが文字列をさらに連結する正しい方法でない場合、最善の方法は何でしょうか?
ベストアンサー1
記述したコードは動作します。おそらく、無関係だが似たようなことを達成しようとしているのでしょう:
std::string c = "hello" + "world";
char
これはC++では2つのポインタを追加しようとしているように見えるため、うまくいきません。代わりに、必要少なくとも1つのchar*
リテラルをに変換しますstd::string
。質問で既に投稿した内容を実行することもできます(私が言ったように、このコード意思作業) または次の操作を実行します。
std::string c = std::string("hello") + "world";