<分区>
我不知道如何为嵌套类使用类型别名。下面是链表的类声明。我最初用节点和迭代器类与链表一起实现了链表类,现在我试图将它们嵌套在链表中。为了使该类更易于阅读,我宁愿在任何地方都使用迭代器而不是 linkedlist::iterator,所以我想将它作为迭代器键入别名。以下是我的尝试之一,无论我更改什么,我都会遇到一个或另一个错误。这个行不通,因为行
class linkedlist::iterator;
导致错误 (g++ -std=c++11) 'iterator' in 'class linkedlist' does not name a type.
class linkedlist;
class linkedlist::iterator;
class linkedlist::node;
using iterator = linkedlist::iterator;
using node = linkedlist::node;
class linkedlist
{
public:
linkedlist();
iterator begin();
iterator end();
iterator insert(iterator pos, long data);
void print();
node* root;
node* final;
private:
class iterator
{
public:
const linkedlist* list;
node* ref;
iterator();
iterator(node& ref, const linkedlist& list);
long& operator*();
long* operator->();
iterator& operator++();
iterator& operator--();
bool operator==(iterator rhs);
bool operator!=(iterator rhs);
};
private:
class node
{
public:
long& operator*();
long data;
node* ptr_f;
node* ptr_b;
};
};