链表缓冲区;什么应该插入返回?

时间:2014-10-13 16:21:57

标签: c++

如果以前有过这个问题,请原谅我。

我已经将无效插入函数写入链表,但我必须使函数使用:

CyclicBuffer cbof4(4);
 cbof4.insert(1).insert(2).insert(3).insert(4);

这是我的班级:

class node
{
friend class CyclicBuffer;
public:
    int value;
    node* next;
    node(int data)
    {
        next = NULL;
        value = data;
    }
};

class CyclicBuffer
{
private:
    int _size;
    node *head;
    node *tail;
public:
    void insert(int data);
    void extract();
    bool empty();
    bool full();
    int used();
    void print();
    CyclicBuffer(int size)
    {
        _size = size;
        head = NULL;
        tail = NULL;
    }
};

和我的插入功能:

void CyclicBuffer::insert(int data)
{
    node *p = new node(data);
    p -> next = NULL;

    if (tail == NULL)
    {
        tail = head = p;
    }
    else
    {
        head -> next =  p;
        head = p;
    }
}

有人可以给我一些建议我的功能应该返回吗?

1 个答案:

答案 0 :(得分:4)

如果你想这样做,最简单的就是回归:

CyclicBuffer& CyclicBuffer::insert(int data) {
    // rest as before
    return *this;
}

那样,

cbof4.insert(1).insert(2).insert(3).insert(4);

完全相同
cbof4.insert(1);
cbof4.insert(2);
cbof4.insert(3);
cbof4.insert(4);