2015-02-21 5 views
0

У меня есть 3 файлов 2 файлы заголовков и один .CPP файлПроблема с наследованием функции

заголовочный файл кода STX.H

/ search for item in the list and delete it if found 
void SeqList::Delete(const DataType& item) 

Я пытаюсь передать последнюю переменную имя к ней из Employee.CPP файл

void SeqList::Delete(const DataType& item) 
{ 
    lastname = item; 
} 

ошибку в .cpp является Lastname не определен.

это то, что файл заголовок выглядит как для сотрудника

class Employee 
{ 
private: 
    string lastname; 

public: 
    void SeqList::Delete(const DataType& item); 

ошибки в этом классе «классификатор должен быть базовым классом„Сотрудник“

как я решить эту проблему.

Я все еще пытаюсь понять, как наследовать вещи, которые так несут меня.

+0

Если функция 'Delete' не является членом класса' Employee', почему вы объявляете ее в классе 'Employee'? А где (если где угодно) объявляется 'lastname'? И можете ли вы создать [Минимальный, ** Полный ** и Подтверждаемый пример] (http://stackoverflow.com/help/mcve) и показать нам? –

+0

Я думаю, что должен это сделать, я думал, что это было минимально. – Darkaura

ответ

0

Во-первых, в вашем классе Employee th e lasname is private: к нему могут обращаться только функции члена Работника.

Тогда у вас есть проблема синтаксиса с классификатором SeqList:: в своем определении класса:

class Employee 
{ 
... 
public: 
    void SeqList::Delete(const DataType& item); //oops !! 
... 
}; 

Если Delete() является memeber функцией Employee, просто удалите спецификатор.

Если Delete() не является членом Employee, но должен быть memeber другого класса (т.е. SeqList), то вы определили свою функцию в неположенном месте. Вы должны объявить его в классе SeqList. Но в этом случае у вас будет проблема с lastname: функции члена SeqList не будут иметь к нему доступа, если вы не сделаете это общедоступным.

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