这是一个 C++ 程序,它显示我的函数超出范围。有人可以告诉我错误以及如何修复它们
Here is a C++ program where it is showing that my function is out of scope. Can someone please tell me the errors and how to fix them
问题
您必须创建一个class,名为Student,代表学生的详细信息,如上所述,并存储学生的数据。为每个元素创建 setter 和 getter 函数;也就是说,class至少应该有以下功能:
get_age,set_age
get_first_name、set_first_name
get_last_name、set_last_name
get_standard、set_standard
此外,您还必须创建另一个方法 to_string() ,其中 returns 由上述元素组成的字符串,以逗号 (,) 分隔。这个可以参考stringstream
代码:
#include <iostream>
using namespace std;
class Student{
private:
int age;
string fname;
string lname;
int std;
public:
void set_age(int a){age=a;;}
void set_fname(string f){fname=f;} //fname= first name
void set_lname(string l){lname=l;} //lname= last name
void set_std(int s){std=s;}
void get_age(){
cout<<age<<endl;
}
void get_fname(){
cout<<fname<<endl;
}
void get_lname(){
cout<<lname<<endl;
}
void get_std(){
cout<<std<<endl;
}
void to_string(){
string fl=lname+", "+fname; //fl stand for first and last
cout<<fl;
}
};
int main() {
Student z;
int a,s;
string f,l;
cin>>a;
z.set_age(a);
cin>>f;
z.set_fname(f);
cin>>l;
z.set_lname(l);
cin>>s;
z.set_std(s);
get_age();
to_string();
get_std();
return 0;
}
输出
Solution.cpp:52:11: error: ‘get_age’ was not declared in this scope
cout<<get_age();
^~~~~~~
Solution.cpp:52:11: note: suggested alternative: ‘getdate’
cout<<get_age();
^~~~~~~
getdate
Solution.cpp:53:15: error: no matching function for call to ‘to_string()’
to_string();
^
您创建了一个 Student
实例,z
,并调用了 misc。 setter 该实例上的成员函数。当您随后调用这些函数来打印您设置的某些值时,您忘记了告诉编译器您要打印哪个实例的值。由于您只有一个实例,z
,请在成员函数之前添加:
z.get_age();
z.to_string();
z.get_std();
改进建议:没有 return 值但打印值的函数最好命名为 print
-something 而不是 get
-something。
问题
您必须创建一个class,名为Student,代表学生的详细信息,如上所述,并存储学生的数据。为每个元素创建 setter 和 getter 函数;也就是说,class至少应该有以下功能:
get_age,set_age get_first_name、set_first_name get_last_name、set_last_name get_standard、set_standard 此外,您还必须创建另一个方法 to_string() ,其中 returns 由上述元素组成的字符串,以逗号 (,) 分隔。这个可以参考stringstream
代码:
#include <iostream>
using namespace std;
class Student{
private:
int age;
string fname;
string lname;
int std;
public:
void set_age(int a){age=a;;}
void set_fname(string f){fname=f;} //fname= first name
void set_lname(string l){lname=l;} //lname= last name
void set_std(int s){std=s;}
void get_age(){
cout<<age<<endl;
}
void get_fname(){
cout<<fname<<endl;
}
void get_lname(){
cout<<lname<<endl;
}
void get_std(){
cout<<std<<endl;
}
void to_string(){
string fl=lname+", "+fname; //fl stand for first and last
cout<<fl;
}
};
int main() {
Student z;
int a,s;
string f,l;
cin>>a;
z.set_age(a);
cin>>f;
z.set_fname(f);
cin>>l;
z.set_lname(l);
cin>>s;
z.set_std(s);
get_age();
to_string();
get_std();
return 0;
}
输出
Solution.cpp:52:11: error: ‘get_age’ was not declared in this scope
cout<<get_age();
^~~~~~~
Solution.cpp:52:11: note: suggested alternative: ‘getdate’
cout<<get_age();
^~~~~~~
getdate
Solution.cpp:53:15: error: no matching function for call to ‘to_string()’
to_string();
^
您创建了一个 Student
实例,z
,并调用了 misc。 setter 该实例上的成员函数。当您随后调用这些函数来打印您设置的某些值时,您忘记了告诉编译器您要打印哪个实例的值。由于您只有一个实例,z
,请在成员函数之前添加:
z.get_age();
z.to_string();
z.get_std();
改进建议:没有 return 值但打印值的函数最好命名为 print
-something 而不是 get
-something。