从一个对象的方法返回std :: string

时间:2013-12-15 11:58:02

标签: c++ stl

我需要返回std :: string:

IntegerValue::(std::string) toString() {
    std::string a = std::to_string(this -> value);
    return a;
}

但GCC编译器说“语法错误”。怎么了?

3 个答案:

答案 0 :(得分:3)

语法为:

std::string IntegerValue::toString() {
    std::string a = std::to_string(this -> value);
    return a;
}

答案 1 :(得分:2)

您的返回类型语法无效。 IntegerValue::(std::string)这是错误的。 在您的班级中使用普通std::stringtypedef并使用此类型。 你不能在那里使用括号。

编辑:

我注意到你只是将类范围标识符放在错误的位置。它应该在方法的名称之前,而不是返回类型。最初我以为你想要从你的班级使用一些特殊的字符串类型。

std::string IntegerValue::toString()

这就是它的全部。

答案 2 :(得分:0)

正确的语法和语义是

const std::string IntegerValue::toString() const
{
    const std::string s{std::to_string(this->value)};

    return s;
}