小编its*_*boy的帖子

5
推荐指数
2
解决办法
1万
查看次数

c ++中的通用链表

我一直在苦苦挣扎太长时间,有一个关于如何在c ++中创建通用链表的相当简单的问题.该列表应该包含几种类型的结构,但每个列表只包含一种类型的结构.当我想实现getNode()函数[见下面]时出现问题,因为那时我必须指定它应该返回哪个结构.我试图用类替换结构,其中getNode函数返回一个由所有其他类继承的基类,但它仍然没有做到这一点,因为编译器不允许getNode函数返回除了基类然后.

所以这里有一些代码片段:

typedef struct struct1 
{
    int param1;
(...)
} struct1;

typedef struct struct2 
{
    double param1;
(...)
} struct2;


typedef struct node
{
    struct1 data;
    node* link;
} node;

class LinkedList
{
public:
    node *first;
    int nbrOfNodes;
    LinkedList();
    void addNode(struct1);
    struct1 getNode();
    bool isEmpty();
};

LinkedList::LinkedList()
{
    first = NULL;
    nbrOfNodes = 0;
}

void LinkedList::addNode(struct1 newData)
{
    if (nbrOfNodes == 0)
    {
        first = new node;
        first->data = newData;
    }
    else
    {
        node *it = first;
        for …
Run Code Online (Sandbox Code Playgroud)

c++ struct linked-list

1
推荐指数
1
解决办法
2652
查看次数