所以,首先我想说我这样做是为了学习,这就是我不使用标准库容器的原因。
我有一个类代表 Qt Ui 中的一个小部件。可以删除这些小部件或在列表末尾添加新的小部件,这就是它们位于链表中的原因。该类看起来像这样:
class Item
{
static Item* first_item;
static Item* last_item;
Item* prev_item;
Item* next_item;
public:
Item(MainWindow*, bool);
~Item();
}
我的问题是,如果我想拥有多个这种类型的链表(比如两个不同的小部件列表),则指向 first_item
和 last_item
节点的静态指针所有列表都相同,这很糟糕。我的想法是将第一个和最后一个指针作为构造函数参数,因此新创建的 Item
知道它属于哪个列表。
这对我来说似乎很丑陋,有没有更好的方法来做到这一点?
最佳答案
你能在不声明它们为static
的情况下进行检查吗?我认为 static
是问题所在。 static
成员是“每个类一个”。我认为更好的方法是在构造函数中使用值将它们初始化(也可以分配默认值)。
阅读此内容以了解有关 static
关键字的更多信息:http://www.cprogramming.com/tutorial/statickeyword.html
可能相关的主题:C++ class with static pointer和 Initializing a static pointer in C++
关于c++ - 链表静态类成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42606782/