gpt4 book ai didi

c++ - 带队列 LNK2005 错误的链表

转载 作者:行者123 更新时间:2023-11-28 06:37:21 25 4
gpt4 key购买 nike

你好我写了下面的程序(带链表的队列)但是我有一个错误我不知道如何修复它如果你能帮我修复它我会很高兴。

这是解决我的问题的代码,我收到 3 个错误:

Error 1 error LNK2005: "struct Node * rear" (?rear@@3PAUNode@@A) already defined in main.obj
Error 2 error LNK2005: "struct Node * front" (?front@@3PAUNode@@A) already defined in main.obj Error 3 error LNK1169: one or more multiply defined symbols found

代码-

队列.h

#ifndef _MYQUEUE_H
#define _MYQUEUE_H
#include <iostream>

struct Node
{
int data;
Node* next;
} *rear, *front;


void enqueue(int element);
void dequeue();

#endif

主要

#include <iostream>
#include "myQueue.h"

int main()
{
Node *rear;
Node *front;

enqueue(7);
enqueue(4);
enqueue(9);

dequeue();
dequeue();
dequeue();

system("pause");

return 0;
}

队列.cpp

#include "myQueue.h"

void enqueue(int element)
{
Node* temp = new Node;
temp->data = element;
temp->next = NULL;

if (front == NULL)
{
front = temp;
}
else
{
rear->next = temp;
}
rear = temp;
}

void dequeue()
{
Node* temp = new Node;
if (front == NULL)
{
std::cout << "No elements" << std::endl;
}
else
{
temp = front;
front = front->next;
std::cout << temp << std::endl;
delete temp;
}
}

最佳答案

你有两个 rearfront 指针声明

一个在 queue.h 中,另一个在 main 中

从 main 中删除 rearfront 指针

int main()
{
//Node *rear;
//Node *front;
.....
}

在 queue.h 中有 extern Node *rear, *front; 并在 queue.cpp 中定义它们

Node *rear, *front;

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

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