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

C++ 链表缓冲区;应该插入什么返回?,c++,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 = NU

如果这个问题以前出现过,请原谅

我已经编写了向链表插入函数的工作空间,但我必须使该函数能够使用:

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;
    }
}

有人能给我一些建议,我的函数应该返回什么吗?

如果你想这样链接,最简单的方法就是返回它自己:

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);

但是void函数不适用于cbof4.insert1.insert2.insert3.insert4;