gpt4 book ai didi

c++ - 创建类成员函数

转载 作者:行者123 更新时间:2023-11-30 05:12:01 25 4
gpt4 key购买 nike

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

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

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
};

在我的 main 中,我有一个用于调用函数的开关盒。

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

然后我在下面创建了函数:

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

但是在我创建的函数中,我在数组上遇到错误:

“非静态成员引用必须与特定对象相关。”

谁能看出我哪里出错了,请帮我纠正一下?

编辑:

所以我现在知道我不应该使用 static,而是(至少)应该使用 void(虽然有一个实际的返回类型会更好 - 但如果我将函数设置为 void,我的数组将变得未定义?

最佳答案

"a nonstatic member reference must be relative to a specific object."

那是你的数组,它不是static,而getSex()static。然而,将该方法标记为 static 有意义吗?我的意思是每个 Person 都有自己的性别(男性或女性)。


PS:通常 getter 函数会返回一些东西,而您的函数的返回类型为 void。我怀疑你这样做只是为了测试(因为你打印了一些东西)。

关于c++ - 创建类成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44760750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com