gpt4 book ai didi

c++ - Qt - 如何从 const 函数追加到本地列表

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

我正在使用 Qt 4.7。我有一个类是 QAbstractTableModel 的子类。我需要一个名为 intlist 的本地 QList 来跟踪标题为特定值的任何列。这些 header 存储在名为 headerNames 的 QStringList 中。现在我有这个:

QVariant myTableClass::data(const QModelIndex &index, int role) const
{
if(headerNames[index.column()] == "TriggerText")
{
this->intlist.append(index.column();
}
return QVariant;
}

当我尝试构建它时,它给了我错误“C2663:‘QList::append’:2 个重载没有‘this’指针的合法转换”。根据我在网上找到的类似问题的提示,我尝试了几种不同的方法,包括:仅使用 intlist 而不是 this->intlist;将 int 设置为 index.column() 的值,然后在 append 中使用该 int 代替;并创建一个单独的非常量函数来调用附加值。他们都给出了同样的错误。我完全不知道该怎么做。有人可以帮忙吗?谢谢!

最佳答案

如果您绝对需要从 const 成员函数中修改成员,您可以将 mutable 添加到您要修改的成员的声明中。

该成员可能应该是私有(private)的,并且该成员的状态不应影响公开给您类的用户的公共(public)状态,他们希望您的成员函数对该对象没有影响。

参见 this page on MSDN ,或者 Bjarne Stroustrup 的 The C++ Programming Language Fourth Edition 中的第 16.2.9.3 节。 mutable 在 C++11 之前可用。

关于c++ - Qt - 如何从 const 函数追加到本地列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22233353/

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