2015-09-25 75 views
0

我跳過上述部分 它是使用類普通的C++程序,其打印姓名,年齡和標準從「詮釋」到「爲const char *」無效的轉換[-fpermissive]

代碼如下:

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

你想用「return」實現什麼功能? – SingerOfTheFall

+0

我希望所有字符串(名稱,年齡,標準)都在一行中出現 –

+0

因此,您只是假定您可以使用逗號運算符連接字符串?當你不知道的時候你應該查看這些東西。 – aslg

回答

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(); 
} 
+0

然後在這些陳述中出現錯誤: Student st; (年齡); st.set_age(age);標準(st.set_standard)(標準); st.set_first_name(first_name); st.set_last_name(last_name); 對Student :: set_blah的未定義引用 –

+0

@ A.Bora是否定義了這些函數?你是否與生成的目標文件鏈接?這些錯誤代碼在這裏沒有顯示。 – TartanLlama

+0

但不是那些內置函數#include ? –

相關問題