创建类成员功能

Creating class member functions

本文关键字:功能 成员 创建      更新时间:2023-10-16

我正在尝试为我创建的类创建类成员函数。当前,该类具有一个2D数组,该数组通过从文件中读取文本来填充。

我试图做的是通过成员函数操纵数组以执行不同的任务(我正在创建一个菜单驱动的程序(。

class Person
{
private: 
    string sname;
    string fname;
    string sex;
    string dob;
    string array[4][8];
public:
    Person();
    void getSex(); <-- This is where I'm struggling
};

从我的主机上,我有一个我用来调用功能的开关案例。

int main()
{
    switch (case)
    {
    case '1':
        Person();
        break;
    case '2':
        Person::getSex();
        break;
}

i然后具有我在下面创建的功能:

void getSex()
{
    for (int r = 0; (r < 4); r++)
    {
        for (int c = 0; (c < 2); c++) cout << array[x][y] << " ";
        cout << endl;
    }
}

但是,在我创建的功能中,我在数组上遇到一个错误,该数组说:

"非静态成员参考必须相对于特定对象。"

任何人都可以看到我要去哪里,请帮助我纠正它?

编辑:

所以我现在知道我不应该使用静态,而(至少(应该使用void(尽管拥有实际的返回类型会更好 - 但是如果我设置了该功能以使我的数组不确定?

"非静态成员参考必须相对于特定对象。"

那是您的数组,不是static,而getSex()static。但是,将该方法标记为static是否有意义?我的意思是每个Person都会有其性别(女性的男性(。


ps:通常getter函数返回某些内容,而您的功能则为返回类型void。我怀疑您只是为了进行测试而这样做(因为您打印了某些东西(。