来自' int'的无效转换到#char; char *' [-fpermissive]

时间:2015-09-25 08:06:32

标签: c++ string

我已跳过上述部分 这是一个普通的c ++程序,它使用打印名称,年龄和标准的类

代码如下:

string to_string()
{
    return age,last_name,first_name,standard; //PROBLEM IS HERE
}
};

int main() {
    int age, standard;
    string first_name, last_name;

    cin >> age >> first_name >> last_name >> standard;

    Student st;
    st.set_age(age);
    st.set_standard(standard);
    st.set_first_name(first_name);
    st.set_last_name(last_name);


    cout << st.get_age() << "\n";
    cout << st.get_last_name() << ", " << st.get_first_name() << "\n";
    cout << st.get_standard() << "\n";
    cout << "\n";
    cout << st.to_string();

    return 0;
}

1 个答案:

答案 0 :(得分:3)

string to_string()
{
    return age,last_name,first_name,standard; //PROBLEM IS HERE
}

我假设您想将所有成员数据连接成一个字符串并返回该字符串,但逗号运算符只是计算其第一个表达式,抛弃该值,然后返回第二个表达式的值。

你可以制作一个std::string然后反复追加它。我认为std::stringstream对于这样的事情来说有点清洁:

string to_string()
{
    std::stringstream ss;
    ss << age << ' ' << last_name << ' ' << first_name << ' ' << standard;
    return ss.str();
}