2014-11-21 2 views
0

Прошло некоторое время с тех пор, как я запрограммировал C++, и я пытаюсь решить некоторые проблемы с практикой, чтобы снова ознакомиться с синтаксисом. Я пишу программу, которая имеет базовый класс RetailEmployee с 3 производными классами: SalesEmployee, WarehouseEmployee и ManagerEmployee. У меня есть следующий код в верхней части моего заголовка для одного из производных классов:Ошибка метода наследования производного класса C++

// Sales Employee Class Header 
#indef SalesEmployee 
#define SalesEmployee 

#include <stdio.h> 
#include "RetailEmployee.h" 

using namespace std; 

class SalesEmployee 
{ 
public: 
    SalesEmployee(string department, float pay, int ID, string name) 
. 
. 
. 

Однако, в любое время я пытаюсь использовать метод из базового класса на экземпляре SalesEmployee я получаю сообщение об ошибке говорящего метода не найдено. Кроме того, все файлы находятся в одном каталоге.

Есть ли у кого-нибудь предложения?

+3

класс SalesEmployee: public RetailEmployee {...} - Вам необходимо наследовать базовый класс. Как бы то ни было, это просто его собственный класс. – Chris

+2

Ваш защитник ifdef не должен быть '#define SalesEmployee', он должен быть чем-то вроде #define SALES_EMPLOYEE_H'. В противном случае это просто вызывает проблемы с препроцессором. – Barry

ответ

2

Вы не указали компилятору, что class SalesEmployee является потомком class RetailEmployee. Чтобы сделать это, вы должны:

class SalesEmployee : public RetailEmployee 
{ 

} 

Вам также необходимо изменить конструктор для class SalesEmployee пройти по нужной информации инициализации строительства до class RetailEmployee. Такие, как это в вашем файле реализации SalesEmployee.cpp:

SalesEmployee::SalesEmployee(string department, float pay, int ID, string name) : RetailEmployee(department, pay, ID, name) 
{ 
    // Whatever special initialization SalesEmployee has goes here. 
} 

Я предполагаю все эти данные члены фактически определены в базовом классе, так как они должны быть общими для всех классов.

Смежные вопросы