Вызов функций из двойного указателя - PullRequest
2 голосов
/ 28 ноября 2011

Я создал указатель на класс, который я создал, который указывает на динамический массив указателей этого класса. Я пытаюсь использовать функции из созданного мною класса (Student).

Student **list;

list[i] = TextToClass(tempCourse);
list[i].SetCourse(x);
list[i].SetGrades(inFile);

Назначение работает. Но использование этих функций не работает. Как именно я могу использовать их функции?

Вот ошибка:

student.cpp: In member function ‘void Controller::ReadAndStore()’:
student.cpp:119: error: request for member ‘SetCourse’ in ‘((Controller*)this)->Controller::list[i]’, which is of non-class type ‘Student*’
student.cpp:121: error: request for member ‘SetGrades’ in ‘((Controller*)this)->Controller::list[i]’, which is of non-class type ‘Student*’

Ответы [ 3 ]

2 голосов
/ 28 ноября 2011

Вы пробовали это?

list[i]->SetCourse(x);
list[i]->SetGrades(inFile);
2 голосов
/ 28 ноября 2011

Поскольку Student **list является указателем на указатели, а затем list [i] должен быть указателем.Поэтому его методы должны вызываться с помощью обозначения «->», как указано выше.

2 голосов
/ 28 ноября 2011

Что такое list[i]? Может быть, если указатель, как вы говорите, вы должны использовать list[i]->SetCourse(x);?

Не стесняйтесь публиковать часть своего кода вместо описания того, что вы намеревались сделать. Если бы это делало то, что вы хотели, вы бы не задавали вопросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...