gpt4 book ai didi

c++ - QList表现奇怪

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:36:23 24 4
gpt4 key购买 nike

我对 Qt 没有太多经验,但不知何故我觉得这很奇怪。用 VS2005 编译:

class Entry
{
public:
Entry(const QString& aName, bool checked) :
name(aName), isChecked(checked)
{
// empty
};

Entry(const Entry& entry) :
name(entry.name), isChecked(entry.isChecked)
{
// empty
};

Entry& operator=(const Entry& entry)
{
name = entry.name;
isChecked = entry.isChecked;
return *this;
}

QString name;
bool isChecked;
};

typedef QList<conduit::Entry> EntryVector;

在以下行中使用 EntryVector 时,QList 中的条目变成了错误指针:

void EntryWidget::setEntries(QStringList& names)
{
QStringList::iterator member;
EntryVector list;

for (member = names.begin(); member != names.end(); ++member)
{
Entry entry(*member, false);
list.append(entry);
}

m_model.setEntryData(list);
}

不知何故,列表中的 entry.name 会变成坏指针。我的理解是 QList 应该能够支持其模板中的任何数据,但由于某种原因我还不明白这是行不通的。如果我使用 STL Vector,一切正常。

有什么想法吗?谢谢

最佳答案

我遇到了同样的问题,来找答案。

我以为我的代码行为不当,但实际上并没有。

VS2005 调试器无法正确显示 QList 中的内容。

并且正如 davmac 所建议的那样,当您将这些内容打印出来时,它工作正常。

还有 davmac,当他给你一段代码让你尝试时,请不要指出他可能有内存损坏。如果您无法使用相同的设置进行尝试,那就另当别论了。

关于c++ - QList表现奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3560494/

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