运算符为非友元类重载c ++

时间:2016-04-07 23:01:19

标签: c++

我尝试实现以下功能

std::string operator+(std::string s, int t);

但是如果我尝试

就不会被调用
std::string s = "abc" + 123;

虽然如果我打电话

就会被调用
operator+("abc", 123);

我有什么遗失的吗?

1 个答案:

答案 0 :(得分:3)

" 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;