功能继承问题

时间:2015-02-21 17:09:09

标签: c++ class inheritance header parameter-passing

我有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中的错误是姓氏未定义。

这是员工

的头文件
class Employee
{
private:
    string lastname;

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

这个类中的错误是“限定符必须是”Employee“的基类

我该如何解决这个问题。

我仍然试图准确掌握如何继承事物,所以请耐心等待。

1 个答案:

答案 0 :(得分:0)

首先,在您的班级Employee中,lasnameprivate:只有员工的成员函数才能访问它。

然后,您的类定义中的限定符SeqList::存在语法问题:

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

如果Delete()Employee的成员函数,只需删除限定符即可。

如果Delete()不是Employee的成员,但应该是另一个类的成员(即SeqList),那么您已将您的函数定义在错误的位置。您必须在SeqList类中声明它。但在这种情况下,您将遇到lastname的问题:除非您将其公开,否则S​​eqList成员函数将无法访问它。