这是一个 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。