gpt4 book ai didi

将 typedef 语句放入双向链表的类中时出现 C++ 错误

转载 作者:行者123 更新时间:2023-11-30 05:19:58 24 4
gpt4 key购买 nike

我正在实现一个双向链表。

我的课上有 3 个 typedef 语句。

编译时出现错误“'reference' does not name a type”。如果我将它们移到我的 include 语句下,这个错误就会消失,但会出现新的错误,例如“节点”未在我的主要范围内声明。我不确定这些 typedef 语句中的每一个都需要去哪里才能使我的程序正常运行。我也包含了默认构造函数。

#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;


class linkedlist
{
public:

typedef int element_type;
typedef element_type& reference;
typedef const element_type& const_reference;
linkedlist();
~linkedlist();
bool empty() const;
void clear();
reference back();
const_reference back() const;
reference front();
const_reference front() const;
linkedlist& operator=(const linkedlist& l);
void pop_back();
void pop_front();
void push_back(const element_type& x);
void push_front(const element_type& x);
void sort();

explicit linkedlist(unsigned int n);
void check() const;
void rcheck() const;


private:
struct Node
{
element_type elem;
Node* next;
Node* prev;
};
Node* head;
Node* tail;
int size;
};

linkedlist::linkedlist()
{
head = new Node;
tail = new Node;
head->next = tail;
head->prev = NULL;
tail->next = NULL;
tail->prev = head;
size = 0;
}

...

最佳答案

我有一个部分的答案给你:如果你的reference是在类内部定义的,当它们在类外部定义时,你需要在成员函数定义的返回类型中包含类名。例如

linkedlist::reference linkedlist::back(){/*...*/}

我猜不出为什么 Node 也是一个问题,因为您没有显示任何使用它的代码。

关于将 typedef 语句放入双向链表的类中时出现 C++ 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40900579/

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