gpt4 book ai didi

c++ - 具有重载运算符的无效操作数 <<

转载 作者:行者123 更新时间:2023-11-30 00:47:04 24 4
gpt4 key购买 nike

我正在尝试使用 << 运算符在链表上调用插入方法,例如:

a<<b
takes data b and inserts it into LinkedList a

这是我在 .h 和 .cpp 文件中的实现:

class LinkedList{
public:
LinkedList();
LinkedList(const LinkedList &l); //copy constructor
~LinkedList(); //destructor

//read the list for items
bool reset();
bool next();
int get();
//insert an item in the list
bool insert();
bool insert(int &data);

//delete an item in the list
bool remove();

//Should take data b and add it to the linked list a
void operator<< (int data);
;
//advances the internal iterator 1 node if not null
void operator++ ();

_________________________________________
Linkedlist.cpp

void LinkedList::operator<<(int &data)
{
insert(data);
}
bool LinkedList::insert(int &data){
LinkedListNode* n;
LinkedListNode *tempNode;
n = new LinkedListNode();
n -> data = data;
if(head==NULL){
head = n;
current = head;
size++;
return true;
}
if(head->next!=NULL){
tempNode = head->next;
}
else{
tempNode = head;
}
while(tempNode->next!=NULL){
tempNode = tempNode->next;
}
head->next = n;
size++;
return true;
}

我主要使用:

l<<num;

得到错误:

invalid operands to binary expression ('LinkedList *' and
'int')

如果我在 LinkedList 类中重载运算符,为什么会发生这种情况?

最佳答案

因为 lLinkedList * , 而不是 LinkedList .通过覆盖 <<LinkedList 上,您不会自动覆盖 LinkedList * ,也是。

关于c++ - 具有重载运算符的无效操作数 <<,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35868594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com