C++ 我需要帮助在一个类中输入两个字符串并获取其输出
当我试图在程序中输入两个字符串名称C++ 我需要帮助在一个类中输入两个字符串并获取其输出,c++,string,C++,String,当我试图在程序中输入两个字符串名称str1和str2时,它给出了一个错误 cpp|19|error: cannot convert 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'} to 'int' in return| |26|error: cannot convert 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'} to
str1
和str2
时,它给出了一个错误
cpp|19|error: cannot convert 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'} to 'int' in return|
|26|error: cannot convert 'std::__cxx11::string' {aka 'std::__cxx11::basic_string<char>'} to 'int' in return|
cpp | 19 |错误:无法将'std::uCxx11::string'{aka'std::uCxx11::basic_string'}转换为'int'作为返回|
|26 |错误:无法将'std::ucx11::string'{aka'std::uucx11::basic_string'}转换为'int'作为返回|
#包括
#包括
#包括
使用名称空间std;
班级学生
{
字符串str1,str2;
公众:
无效集合名称(字符串a)
{
str1=a;
}
int get_first_name()
{
返回str1;
}
无效集合\姓氏\名称(字符串b){
str2=b;
}
int get_last_name()
{
返回str2;
}
};
int main(){
字符串名、姓;
cin>>名字>>姓氏;//输入字符串
学生会;
st.set_first_name(first_name);//在学生课堂上设置字符串1
st.set_last_name(last_name);//在学生课堂上设置字符串2
cout函数的返回类型是int,而不是string。这是因为getter函数的返回类型是int而不是string:
string get_first_name()
{
return str1;
}
string get_last_name()
{
return str2;
}
更新:回答评论中的问题
class Student
{
string str1,str2;
int age, st;
public:
void set_first_name(string a)
{
str1=a;
}
int get_first_name()
{
return str1;
}
void set_last_name(string b){
str2=b;
}
int get_last_name()
{
return str2;
}
friend std::ostream& operator<<(std::ostream&, const Student&);
};
std::ostream& operator<<(std::ostream& out, const Student& student)
{
out << "("<<student.age<<","<<student.str1 << "," << student.str2 << "," << student.st << ")";
return out;
}
班级学生
{
字符串str1,str2;
国际年龄,圣彼得堡;
公众:
无效集合名称(字符串a)
{
str1=a;
}
int get_first_name()
{
返回str1;
}
无效集合\姓氏\名称(字符串b){
str2=b;
}
int get_last_name()
{
返回str2;
}
friend std::ostream&operator在您的第一个错误案例中,您试图返回std::string
对象,其中需要int
值。您的get_first_name()
和get_last_name()
getter需要返回std::string
,而不是int
,例如:
string get_first_name()
{
return str1;
}
string get_last_name()
{
return str2;
}
在第二个错误案例中,代码中存在多个语法错误。有多个语法元素缺失或位置错误
代码应该更像这样:
班级学生
{
std::字符串str1,str2;
int ag,st;
公众:
void set_first_name(标准::字符串a)
{
str1=a;
}
std::string get_first_name()const/#include
#包括
使用名称空间std;
班级学生{
私人:
智力年龄;
国际标准;
字符串名;
字符串last_name;
公众:
无效集_年龄(整数a){
年龄=a;
}
int get_age(){
回归年龄;
}
无效集_标准(int b){
标准=b;
}
int get_标准(){
退货标准;
}
无效集合名称(字符串c){
第一个名称=c;
}
字符串get_first_name(){
返回第一个名称;
}
无效集合\姓氏\名称(字符串d){
姓氏=d;
}
字符串get_last_name(){
返回姓氏;
}
字符串到_字符串()
{
细流ss;
字符c=',';
sscout您定义的函数返回int
,但试图从中返回std::string
。编译器的错误说明了同样的事情。您不清楚这个编译错误,您想问的是什么?@drescherjm您说得对,我修复了返回类型,但错误现在是error:'class StudeNT’没有成员名为“toSoStand”@ AdEez,现在需要实现成员函数<代码>::to-StReg()/Cuth>。C++没有自动添加这样的函数,比如java中发生的函数,每个类都得到了<代码> toStReg()
继承自java.lang.Object
类。新问题的解决方案:在类后面去掉get_standard(void),在}前面加分号以获取标准class@NixonN我如何返回字符串??只需像我一样将字符串放在getter函数的返回类型中。或者你实际上是什么意思?@nixon你能帮我做一件事吗?我想在最后一行得到这样的输出(15,john,carmack,10)我怎么弄到这个你可以超负荷operator@aadeez你可以编辑你的文章,但你不应该删除文章的第一部分。你应该只是附加它。
string get_first_name()
{
return str1;
}
string get_last_name()
{
return str2;
}
class Student
{
string str1,str2;
int age, st;
public:
void set_first_name(string a)
{
str1=a;
}
int get_first_name()
{
return str1;
}
void set_last_name(string b){
str2=b;
}
int get_last_name()
{
return str2;
}
friend std::ostream& operator<<(std::ostream&, const Student&);
};
std::ostream& operator<<(std::ostream& out, const Student& student)
{
out << "("<<student.age<<","<<student.str1 << "," << student.str2 << "," << student.st << ")";
return out;
}
int main()
{
Student me;
std::cout << me;
}
string get_first_name()
{
return str1;
}
string get_last_name()
{
return str2;
}
#include <iostream>
#include <sstream>
using namespace std;
class Student{
private:
int age;
int standard;
string first_name;
string last_name;
public:
void set_age(int a){
age = a;
}
int get_age(){
return age;
}
void set_standard(int b){
standard = b;
}
int get_standard(){
return standard;
}
void set_first_name(string c){
first_name = c;
}
string get_first_name(){
return first_name;
}
void set_last_name(string d){
last_name = d;
}
string get_last_name(){
return last_name;
}
string to_string()
{
stringstream ss;
char c = ',';
ss<<age<<c<<first_name<<c<<last_name<<c<<standard;
return ss.str();
}
};
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;
}