C++ 编译器说;标题「;未声明:LinkedList
我将我的节点定义为一个结构并尝试获取它。但当我运行我的代码编译器时,它说“head”,“tail”并没有声明。我是不是给它下了错误的定义 尝试使用模板,但不起作用C++ 编译器说;标题「;未声明:LinkedList,c++,algorithm,C++,Algorithm,我将我的节点定义为一个结构并尝试获取它。但当我运行我的代码编译器时,它说“head”,“tail”并没有声明。我是不是给它下了错误的定义 尝试使用模板,但不起作用 您在类列表中声明了head和tail作为私有成员字段。但是您是从类外的方法访问它们的。编译器因此抛出错误 在insertFront函数中,您已经编码了 head = node node->next = head; 这是错误的head是访问剩余链表的唯一途径。通过执行head=node,您将无法访问列表的其余部分。然后执行no
您在类列表中声明了head和tail作为私有成员字段。但是您是从类外的方法访问它们的。编译器因此抛出错误 在
insertFront
函数中,您已经编码了
head = node
node->next = head;
这是错误的head
是访问剩余链表的唯一途径。通过执行head=node
,您将无法访问列表的其余部分。然后执行node->next=head
,基本上将节点指向自身。应该反过来做
node->next = head;
head = node;
insertBack
函数中的另一个错误<代码>上一个未在结构节点中声明。在尾部插入的正确方法是
tail->next = node;
tail = node;
请不要使用文本图像,请将粘贴复制为文本。提示:函数,它们真的是成员函数吗?您可以使用工具栏上的{}按钮形成代码块。选择文本并按{}按钮i删除的私有声明,仍然存在此问题您可以在问题中添加更新的完整代码作为文本吗?这将有助于我们更好地理解这个问题。请不要忘记在code.struct节点{int data;Node*next;};类列表{Node*head,*tail;public:List(){head=NULL;tail=NULL;};仍然有完全相同的错误。如果我们不为C++中的任何类成员字段指定访问修饰符,默认情况下,它们被视为私有的。因此,作为注释添加的代码与图片中添加的代码没有太大区别。请注意,在类中,成员默认为private,而在结构中,成员默认为public。卢西恩关于逻辑变化的建议仍然有效。