0

Hello I have a struct in a TreeItem class:

// TreeItem.h
class TreeItem
{
public:

  struct TreePair
  {
    QString   sa_key;
    QVariant  sa_value;
  };

  //... blabla
}

I would like access that struct TreePair from another class TreeModel , which has class TreeItem already formarded in its header:

// TreeModel.h
class TreeItem;
class TreeModel : public QAbstractItemModel
{
    Q_OBJECT
    //..
}

// TreeModel.cpp
TreeModel::TreeModel(const QStringList &headers, const QString &data, QObject *parent)
  : QAbstractItemModel(parent)
{
  QVector<TreePair> rootData; // TreePair was not declared in this scope
}

My strcut was not declared in this scope?? In every class it was already automatically set like

#ifndef _TREEITEM_H
#define _TREEITEM_H
#endif
MarkZltr
  • 67
  • 2
  • 7
  • 2
    `TreeItem::TreePair` note that `TreeItem` must be defined before `TreeModel` in that case. Why not make `TreePair` a separate definition? – BeyelerStudios Aug 12 '15 at 11:42

1 Answers1

1

Since TreePair is nested inside TreeItem, it needs to be

QVector<TreeItem::TreePair> rootData;
m.s.
  • 16,063
  • 7
  • 53
  • 88