如果以前有过这个问题,请原谅我。
我已经将无效插入函数写入链表,但我必须使函数使用:
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;
}
}
有人可以给我一些建议我的功能应该返回吗?
答案 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);