您好,我在TreeItem类中有一个结构:

// TreeItem.h
class TreeItem
{
public:

  struct TreePair
  {
    QString   sa_key;
    QVariant  sa_value;
  };

  //... blabla
}


我想从另一个类TreeModel访问该结构TreePair,该类的头中已经形成了TreeItem类:

// 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
}


我的strcut没有在此范围内声明?在每个班级,它已经自动设置为

#ifndef _TREEITEM_H
#define _TREEITEM_H
#endif

最佳答案

由于TreePair嵌套在TreeItem内,因此需要

QVector<TreeItem::TreePair> rootData;

关于c++ - 如何从另一个C++类访问结构?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31964211/

10-14 09:29