What the hell is going on here??
Is it language bug or my brain exploded already?
I tried to compile this on many compiler but they gave me the same error code.
Code:class Node {
protected:
Node *next;
Node *previous; // error: `Node*Node::previous' is protected
public:
virtual Node *getNext(void) const { return next; }
virtual void setNext(Node *next) { this->next = next; }
virtual Node *getPrevious(void) const { return previous; }
virtual void setPrevious(Node *previous) { this->previous = previous; }
};
class LinkedNode : public Node // See? LinkedNode inherits the Node!!
// It supposed be able to access protected members of Node!!
{
public:
virtual void setNext(Node *next) {
// within this context
if(next) { next->previous = this; }
Node::setNext(next);
}
virtual void setPrevious(Node *previous) {
if(previous) { previous->next = this; }
Node::setPrevious(previous);
}
};