c++ - 链表静态类成员

标签 c++ pointers static linked-list

所以,首先我想说我这样做是为了学习,这就是我不使用标准库容器的原因。

我有一个类代表 Qt Ui 中的一个小部件。可以删除这些小部件或在列表末尾添加新的小部件,这就是它们位于链表中的原因。该类看起来像这样:

class Item
{
    static Item* first_item;
    static Item* last_item;
    Item* prev_item;
    Item* next_item;

    public:
    Item(MainWindow*, bool);
    ~Item();              
} 

我的问题是,如果我想拥有多个这种类型的链表(比如两个不同的小部件列表),则指向 first_itemlast_item 节点的静态指针所有列表都相同,这很糟糕。我的想法是将第一个和最后一个指针作为构造函数参数,因此新创建的 Item 知道它属于哪个列表。

这对我来说似乎很丑陋,有没有更好的方法来做到这一点?

最佳答案

你能在不声明它们为static的情况下进行检查吗?我认为 static 是问题所在。 static 成员是“每个类一个”。我认为更好的方法是在构造函数中使用值将它们初始化(也可以分配默认值)。

阅读此内容以了解有关 static 关键字的更多信息:http://www.cprogramming.com/tutorial/statickeyword.html

可能相关的主题:C++ class with static pointerInitializing a static pointer in C++

关于c++ - 链表静态类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42606782/

相关文章:

c - 如何更改结构体中的指针变量?

无法存储包含指针的结构

c++ - 对类的静态成员的 undefined reference

c++ - 程序崩溃,树太大

c++ - Wt - QueryModel 和 WTableView 的示例?

c++ - FindFirstFile 不适用于通配符

c++ - 错误 : typedef name may not be a nested-name-specifier

c - 我如何更改函数中的指针?

c# - 从静态函数访问外部变量

java - Struts 2 静态字段属性?