1
は、私は次の関数オペレータは
std::string operator+(std::string s, int t);
を実装しようとしたが、私は
を呼び出す場合、私はそれが呼び出されるもののstd::string s = "abc" + 123;
をしようとした場合には呼び出されません。
operator+("abc", 123);
紛失しているものがありますか?
は、私は次の関数オペレータは
std::string operator+(std::string s, int t);
を実装しようとしたが、私は
を呼び出す場合、私はそれが呼び出されるもののstd::string s = "abc" + 123;
をしようとした場合には呼び出されません。
operator+("abc", 123);
紛失しているものがありますか?
"abc"はstd::string
ではなく、const char[]
です。あなたは試みることができる:
std::string s = std::string("abc") + 123;
それとも、あなたが使用している場合、C++ 14、
using namespace std::string_literals;
std::string s = "abc"s + 123;
C++ 14の提案のためにUpvoted!あなたは 'auto s =" abc "s + 123;と言うことさえできます。 – vsoftco
' "ABC" は' 'のstd :: STRING'ではありません。 – aschepler
'' abc "+ 123'は' const char * + int'なので、ポインタ演算です。 – Jarod42
@ Jarod42私の悪い、私はそれが演算子+の場合のように文字列にキャストされると仮定しました – kanslulz