进出口创造QT模型,并跨越这些代码来:带有qList引用的构造函数,它是如何工作的?
class StringListModel : public QAbstractListModel
{
Q_OBJECT
public:
StringListModel(const QStringList &strings, QObject *parent = 0)
: QAbstractListModel(parent), stringList(strings) {}
int rowCount(const QModelIndex &parent = QModelIndex()) const;
QVariant data(const QModelIndex &index, int role) const;
QVariant headerData(int section, Qt::Orientation orientation,
int role = Qt::DisplayRole) const;
private:
QStringList stringList;
};
现在我不知道,这是否工作?如果将一个qstringlist传递给该函数,并且它超出了作用域,那么这个对象是否会放弃它的字符串列表?
同时读取: C++ reference in constructor 和: Constructors accepting string reference. Bad idea?
..其中一些人说,这将是无效的,但也有人说,该字符串(在他们的例子)将被复制到本地变量。这真是令人困惑。
等什么?我可以看到:myclass(const std :: string&_name):name(_name){} 和StringListModel(const QStringList&strings,QObject * parent = 0) :QAbstractListModel(parent),stringList(strings){} 你能解释一下吗? – chikuba 2012-02-16 01:44:46
我想他的意思是说“你的第二个环节”,而不是第一个。如果你正在存储一个给定的QStringList的引用,而不仅仅是使用被复制到你的成员变量中的引用,那么你的示例只会有问题。 – Chris 2012-02-16 03:28:27
@Chris好的。我的意思是第二环节。 – 2012-02-16 05:39:48