我正在用 C++ 编写一个圆形列表。这是我的代码
class CList
{
private:
class ListNode
{
public:
int v;
ListNode *prev;
ListNode *next;
/*constructor*/
};
ListNode *_tail;
public:
typedef const void* const Index;//need a way to represent something like 'index' or 'position'
CList():_tail(0)
{
}
void print()const;
void insert(Index pos, const int &value);
Index find(/*some condition*/);
};
嵌套类ListNode
只是用于实现,所以我不希望用户CList
可以访问ListNode
。但由于它是一个列表,用户可以在某个位置插入新节点,所以我添加了成员Index
(不应修改索引!)。但这很愚蠢,我必须ListNode*
手动将其转换为。有没有一种优雅的方式来做到这一点?或者使用嵌套类只是乞讨时的错误。