将基指针指向派生实例 我正在做C++的最后一个项目,我的教授指定我们必须有三个类文件来链接列表。p>

将基指针指向派生实例 我正在做C++的最后一个项目,我的教授指定我们必须有三个类文件来链接列表。p>,c++,inheritance,C++,Inheritance,第一个命名的LinkedList包含head和tail,以及两个重载运算符,在这两个运算符中,我们必须将列表用作数组,并在数组末尾添加一个元素 第二个命名节点包含两个通用值Seat和Row 第三个也是最后一个命名的RNode保存列表中下一个、上一个点的值以及保留状态 我的问题是,在使用LinkedList.cpp定义所有函数时,我无法确定如何将节点设置为头部,因为类型不同。我可以使用tempNode.setNext(Head);,设置列表中的下一个节点;。但是当我尝试执行tempNode=tem

第一个命名的LinkedList包含head和tail,以及两个重载运算符,在这两个运算符中,我们必须将列表用作数组,并在数组末尾添加一个元素

第二个命名节点包含两个通用值Seat和Row

第三个也是最后一个命名的RNode保存列表中下一个、上一个点的值以及保留状态

我的问题是,在使用LinkedList.cpp定义所有函数时,我无法确定如何将节点设置为头部,因为类型不同。我可以使用tempNode.setNext(Head);,设置列表中的下一个节点;。但是当我尝试执行tempNode=tempNode.getNext()时,它说类型不同。对我来说,什么是一个简单的方法来完成这项工作?请记住,我是一名初学C++的新手;p> 这是我的密码

这应该使用链表作为数组,并返回指向与传入的整数相关的节点的指针

int& LinkedList::operator[] (const int &middle) {

    RNode *tempNode;
    tempNode->setNext(Head);

    tempNode = tempNode->getNext(); // Error here 

    for (int i = 0; i < middle; i++) {


    }



}
预订节点类

#ifndef RNODE_H_INCLUDED
#define RNODE_H_INCLUDED

#include "Node.h"

using namespace std;

class RNode : public Node {


    private:

        Node* Next; // Next node pointer
        Node* Prev; // Previous node pointer
        bool reservationStatus(); // Reservation status

    public:

        // Constructors
        RNode(); // Sets default values
        RNode(Node*, Node*, bool); // Takes values passed in and sets them

        // Overloaded operators
        friend ostream &operator << (ostream &, Node*); // Prints out correct symbol based on reservation status
        friend istream &operator >> (istream &, Node*); // Prints correct symbol based on reservation status  .

        // Next
        void setNext(Node*); // Sets next node in list
        Node* getNext(); // Returns next node in list

        // Prev
        void setPrev(Node*); // Sets previous node in list
        Node* getPrev();  // Returns previous node in list

        // Reservation Status

        void setReservationStatus(bool); // Sets reservation status of a current node
        bool getReservationStatus(); // Returns reservation status


};

#endif // RNODE_H_INCLUDED
#ifndef NODE_H_INCLUDED
#define NODE_H_INCLUDED

class Node {


    protected:

        int row;
        int seat;

    public:

        // Constructors
        Node(); // Sets default values
        Node(int, int); // Sets row and seat to values passed in

        // Row
        void setRow(int); // Sets row for current node
        int getRow(); // Gets row for current node

        // Seats
        void setSeat(int); // Sets seat for current node
        int getSeat(); // Gets seat for current node


};



#endif // NODE_H_INCLUDED
总之,如何匹配类型,以便将RNode tempNode设置为等于一个节点?这是非常混乱的,我真的找不到一个很好的解释如何解决这个问题

请记住,根据我的指示,我必须以这种方式创建类。如果由我决定,我会将RNode和Node类组合起来


提前谢谢

由于
RNode
派生自
节点
,因此可以向下转换(使用
动态转换
静态转换
)。虽然我不明白为什么它是另一种类型,但这让我觉得您的designSide有问题。请注意。@unholyseep这是正确的答案。我问了我的教授,他提到我可以在LinkedList类中单独使用RNode,而不必沮丧。我的设计是错误的。谢谢你的帮助!
#ifndef NODE_H_INCLUDED
#define NODE_H_INCLUDED

class Node {


    protected:

        int row;
        int seat;

    public:

        // Constructors
        Node(); // Sets default values
        Node(int, int); // Sets row and seat to values passed in

        // Row
        void setRow(int); // Sets row for current node
        int getRow(); // Gets row for current node

        // Seats
        void setSeat(int); // Sets seat for current node
        int getSeat(); // Gets seat for current node


};



#endif // NODE_H_INCLUDED