C++ 调用返回int并存储到字符串c++;

C++ 调用返回int并存储到字符串c++;,c++,C++,我试图创建一个字符串来调用函数并连接返回字符串值。如果其中一个函数返回int,我会得到一个错误。我对重载运算符没有太多经验,但我认为我需要重载+运算符才能使其正常工作。这是正确的吗?还是有更好的方法 string str=getString1()+getString2()+getInt(); 你可以用 按照vincent的建议,使用std::to_string,您还可以简单地重载+运算符: // string + int std::string operator+(const std::str

我试图创建一个字符串来调用函数并连接返回字符串值。如果其中一个函数返回int,我会得到一个错误。我对重载运算符没有太多经验,但我认为我需要重载+运算符才能使其正常工作。这是正确的吗?还是有更好的方法

string str=getString1()+getString2()+getInt();
你可以用


按照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;

您可以使用getInt().ToString()将整数转换为字符串。@dubstylee:您测试过了吗,或者您只是在编造东西?@KerrekSB他可能把这个问题误认为是C#,尽管在这种情况下,IIRC
ToString()
在C#中被隐式调用。我很抱歉,在我发表评论之前,我没有注意到C++。也许是用来转换数字值吗?我得到的是一个错误,超过一个重载函数“toSyScript”的实例与参数匹配。list@Jordan,如果我没记错的话,那是在VS的更高版本中修复的。我修复了类型cast _ULonglong的问题。谢谢你的帮助!
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.