C++ 创建类成员函数

C++ 创建类成员函数,c++,arrays,function,class,oop,C++,Arrays,Function,Class,Oop,我正在尝试为我创建的类创建一个类成员函数。当前,该类有一个二维数组,该数组通过读取文件中的文本来填充 然后我尝试通过成员函数操纵数组来执行不同的任务(我正在创建一个菜单驱动的程序) 然后,我创建了下面的函数: void getSex() { for (int r = 0; (r < 4); r++) { for (int c = 0; (c < 2); c++) cout << array[x][y] << " ";

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

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

然后,我创建了下面的函数:

void getSex()
{
    for (int r = 0; (r < 4); r++)
    {
        for (int c = 0; (c < 2); c++) cout << array[x][y] << " ";
        cout << endl;
    }
}
void getSex()
{
for(int r=0;(r<4);r++)
{
对于(int c=0;(c<2);c++)cout
“非静态成员引用必须相对于特定对象。”

这是针对您的数组的,它不是
静态的
,而
getSex()
静态的
。但是将该方法标记为
静态的
,有意义吗?我的意思是每个
都会有自己的性别(男性或女性)



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

为什么将
getSex
声明为
static
?一个get函数返回
void
-这有什么意义?至少,这很奇怪。正如@tobi303所说,您不能在
static
函数中使用类成员
array
。您需要同时标记
array
static
,或者(这很可能是您想要做的)将函数定义更改为
void getSex();
英语不是我的母语,但据我所知,英语中的“Sex”与“Gender”不同,例如在意大利语中,getSex似乎是一个非常有趣的活动,但也许你的意思是:你应该决定在循环中使用哪些变量:
r
x
c
y
?在现实世界中,限制男性或女性的性行为并不能完全消除它;-)@JesperJuhl我也在想同样的事情编译器从不假设性别。
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;
    }
}