我正在尝试创建一个调用函数并连接返回字符串值的字符串。如果其中一个函数返回一个int,我会收到一个错误。我对重载运算符没有多少经验,但我认为我需要重载+运算符才能使其工作。它是否正确?或者有更好的方法吗?
string str=getString1()+getString2()+getInt();
答案 0 :(得分:4)
您可以使用std::to_string
。
string str = getString1() + getString2() + std::to_string(getInt());
答案 1 :(得分:0)
根据vincent的建议使用std::to_string
,您也可以轻松地重载+
运算符:
// string + int
std::string operator+(const std::string &str, const int &i){
std::string result = str + std::to_string(i);
return result;
}
// int + string
std::string operator+(const int &i, const std::string &str){
std::string result = std::to_string(i) + str;
return result;
}
然后您的原始代码应该按预期工作。
string str = getString1() + getString2() + getInt();
示例:
td::cout << string("This is a number: ") + 5 << endl;
std::cout << 5 + string(" is a number.") << endl;
输出:
This is a number: 5
5 is a number.