1

我正在尝试在 return 语句中将 int 添加到字符串,如下所示:

string Birthday::asString() {
    return this -> day + "/" + this -> month + "/" + this -> year;
}

并收到以下错误:

错误:表达式必须具有整数或无范围枚举类型

我对 C++ 有点陌生。

4

2 回答 2

11

做你想做的最简单的方法是使用 ostringstream(在 header 中找到<sstream>):

string Birthday::asString() {
    std::ostringstream out;
    out << this -> day << "/" << this -> month << "/" << this -> year;
    return out.str();
}

您收到显示的错误,因为C++不知道如何将整数添加到字符串中。

编辑:正如 M M. 自 C++11 以来的回答中所建议的那样,还有另一种选择,即使用函数 std::to_string。

于 2013-04-25T12:28:36.967 回答
7

您可以使用std::to_string

string Birthday::asString() {
     return std::to_string(this->day) + "/" +
            std::to_string(this->month) + "/" +
            std::to_string(this->year);
}

从 C++11 开始可用

于 2013-04-25T12:29:55.060 回答