進出口創造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