Хмммм, я в тупике, используя Visual Studio 2012, у меня осталась только одна ошибка в моем проекте, и я умираю, чтобы проверить ее. Да, это для класса C++, и я надеюсь, что разместил достаточно кода.
Я получаю сообщение об ошибке:
C2227 слева от ->writeData должен указывать на класс/структуру/объединение/общий тип
В предыдущем проекте эта строка имела элемент массива указателей (я полагаю, указатель Employee*), и она работала так:
Employee* myEmployees[MAX_EMPS];
...
myEmployees[i]->writeData(outputEmployee);
Поэтому я реализую вектор Employee* и предполагаю, что он также содержит указатели:
MyVector<Employee*> employeePtrList;
Я делаю следующие пару шагов немного косвенно, но уточнил это у профессора Дебри:
Employee* empPtr1 = new HourlyEmployee(EMP1_ID, EMP1_NAME, EMP1_ADDRESS, EMP1_PHONE, EMP1_HOURS, EMP1_WAGE);
2...
3...
4...
employeePtrList.push_back(empPtr1);
2...
3...
4...
Затем позже в программе эта строка дает мне ошибку:
employeePtrList.at(i)->writeData(outputEmployee);
Я пробовал разные вещи, если я разыменовываю его с помощью * (employeePtrList) просто для удовольствия, он меняет ошибку intellisense, но я все равно получаю то же самое:
C2227 слева от ->writeData должен указывать на класс/структуру/объединение/общий тип
Есть идеи? Где я запутался, так это в том, что понимаю, что employeePtrLIst - это указатель Employee, так что, может быть, он ищет не в том классе? Я думаю, может быть, я неправильно «указываю» на функцию в классе MyVector?
Спасибо
employeePtrList.at(i)
? - person Johnny Mopp   schedule 11.04.2014