Я создаю модель в qt и наткнулся на этот код:
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 ++ ссылка в конструкторе и: Конструкторы, принимающие строковые ссылки.Плохая идея?
.. где некоторые люди говорят, что он будет недействительным, но некоторые говорят, что строка (в их примерах) будет скопирована в локальную переменную.Это действительно сбивает с толку.