Начинающий C ++ Использование методов доступа / получения для извлечения данных из закрытой переменной-члена (2D-массив) - PullRequest
1 голос
/ 25 сентября 2010

Всего нубов с около 2 месяцами опыта C ++ (без других знаний), так что будьте осторожны со мной.

Я пишу линкор для задания по программированию. Сетка игры 15X20, и я пытаюсь использовать сетку в качестве закрытой переменной-члена класса player.

Мой вопрос:

Если класс player имеет закрытую переменную-член:

char playgrid[15][20];

Есть ли причина, по которой функция доступа определяется следующим образом:

char getgrid(int index1, int index2)
{
    return playgrid[index1][index2];
}

не сработает?

Это делает мою голову. Ошибка, которую я получаю:

c2065: необъявленный идентификатор 'playgrid'

, которая указывает на строку return playgrid[val1][val2] в определении средства доступа.

Пытаясь выяснить это, я успешно использовал мои методы получения для извлечения значений из других закрытых переменных-членов, поэтому все остальное работает должным образом внутри объекта после его создания. Я определенно не пишу ничего неправильно или не использую заглавные буквы. В моем конструкторе playgrid инициализируется следующим образом:

int i, j;

for (i=0; i<15; i++)
{
    for (j=0; j<20; j++)
    {
        playgrid[i][j]='o';
    }
}

Что дает?

1 Ответ

4 голосов
/ 25 сентября 2010

Есть ли причина, по которой функция доступа, определяемая как:

char getgrid(int index1, int index2)
{
return playgrid[index1][index2];
}

, не будет работать?

Да.Функция, объявленная таким образом, не будет функцией-членом класса.Вы, вероятно, имели в виду

char player::getgrid(int index1, int index2)
{
    // ...
}
...