gpt4 book ai didi

c++ - C++中的链接列表错误

转载 作者:行者123 更新时间:2023-11-27 23:15:36 26 4
gpt4 key购买 nike

我用 C++ 实现了一个链表。我正确地实现了它,但是当我对我的代码做了一个小改动时,它给了我一个错误。
我变了
LinkedList l;

LinkedList l=new LinkedList();

它给了我以下错误:

“请求从‘LinkedList*’到非标量类型‘LinkedList’的转换”

谁能告诉我为什么?

这是我的代码:

#include<iostream>
using namespace std;

class Node
{
public:
int data;
Node *next;

Node(int d)
{
data=d;
next=NULL;
}
};

class LinkedList
{
public:
Node *head;
LinkedList()
{
head=NULL;
}
void add(int data)
{
Node *temp,*t=head;
if(head==NULL)
{
temp=new Node(data);
temp->next=NULL;
head=temp;
}
else
{
temp=new Node(data);
while(t->next!=NULL)
t=t->next;
t->next=temp;
temp->next=NULL;
}
}

void Display()
{
Node *temp=head;
cout<<temp->data<<"\t";
temp=temp->next;
while(temp!=NULL)
{
cout<<temp->data<<"\t";
temp=temp->next;
}
}
};

int main()
{
LinkedList l=new LinkedList();
l.add(30);
l.add(4);
l.add(43);
l.add(22);
l.Display();
}

最佳答案

你想要这个:

LinkedList * l = new LinkedList();

请注意,new 运算符返回一个指向分配在堆上的对象的指针 (Foo *)。

或者,为了您的目的,您可以更有效、更简单地分配 LinkedList 作为本地堆栈变量:

LinkedList l;

然后,您不必担心释放指针(使用 delete),并且可以保留以下点运算符使用。

关于c++ - C++中的链接列表错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16568853/

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