我需要c ++中的结构帮助

问题描述 投票:-1回答:1

程序将采用对象名称为“ st”的结构,该结构将使用年龄,然后使用比标准名称更大的名字和姓氏

但这是说这个错误

(main.cpp:33:10:错误:无效使用非静态成员函数'void Student :: age(int)')

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;

    struct Student{
    static string f,l;
    static int  a,s;
    void age(int ag);
    void first_name(string fi)
    {
        f=fi;
    }
    void last_name(string la)
    {
        l=la;
    }
    void standard(int st)
    {
        s=st;
    }
};
void Student :: age( int ag)
{
    a=ag;
}

int main() {
     Student st;
     cin >> st.age >> st.first_name >> st.last_name >> st.standard;
     cout << st.age << " " << st.first_name << " " << st.last_name << " " << st.standard;

    return 0;
}
c++ structure
1个回答
0
投票

现在,目前还不清楚您要使用代码实现什么。

首先,您的问题是因为试图将一些输入放入带有参数的成员函数中,因此需要将输入输入临时参数并传递给它们,还应该将成员函数重命名为set_age,[C0 ]等以指示他们在做什么。

set_first_name

然后,您尝试使用相同的函数输出它们,而无需再次调用它们,但是即使您这样做,它们也会返回Student st; int age; std::string first_name; std::string last_name; int standard; std::cin >> age >> first_name >> last_name >> standard; st.set_age(age); st.set_first_name(first_name); st.set_last_name(last_name); st.set_standard(standard); ,所以什么也没有。您需要一组不同的成员函数来访问这些变量。

void

看来您也不知道class Student{ int age; /* rest of the code */ int get_age() const { return age; } }; int main() { Student student; student.set_age(10); std::cout << student.get_age() << '\n'; } 在类中的含义,现在您所有static类的实例都将共享年龄,名字,姓氏和标准,这可能不是您所要的。

© www.soinside.com 2019 - 2024. All rights reserved.