gpt4 book ai didi

c++ - 链表静态类成员

转载 作者:行者123 更新时间:2023-11-28 05:16:07 24 4
gpt4 key购买 nike

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

我有一个类代表 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/

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