访问类

时间:2016-05-25 15:45:51

标签: c++ inheritance protected

我有两个类,linkedList和orderedLinkedList。有序的LinkedList继承自linkedList,如下所示。

template<class Type>  //definition of node
struct node
{
    Type info;
    node<Type> *link;
};

template<class Type>  
class linkedList
{
protected:
    int count;          // no. of elements in the list
    node<Type> *first;  // pointer to the first node
    node<Type> *last;   // pointer to the last node

public:
    // some functions
}

template<class Type>
class orderedLinkedList: public linkedList<Type>
{
public:
    // some functions
};

据我所知,受保护的成员可以在定义它们的类中以及从该类继承的类中访问。但是,弹出编译时错误说:使用未声明的标识符&#39; first&#39;在以下功能中。

template<class Type>
bool orderedLinkedList<Type>::search(const Type& x) const
{
    node<Type> *p;

    p = first; // <- Use of undeclared identifier 'first'
    while (p != NULL && p->info < x)   
        p = p->link;

    return (p != NULL && p->info == x);
}

我尝试将指针首先公开,但它也不起作用。有没有什么基础我没有得到继承?提前谢谢。

0 个答案:

没有答案