call函数,返回int并存入字符串c ++

时间:2014-11-26 20:00:42

标签: c++

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

string str=getString1()+getString2()+getInt();

2 个答案:

答案 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.