我将QHash用于一个小程序。
CompleterData.h
#include <QMap>
#include <QList>
#include <QHash>
#include <QPair>
#include <QVariant>
class CompleterData
{
public:
enum class Type
{
Header,
SecondHeader,
Data,
LastUsed
};
CompleterData() = default;
QHash < CompleterData::Type, QList<QPair<QString, QVariant>>> data();
void setData( QHash < CompleterData::Type, QList<QPair<QString, QVariant>>> &p_data );
void addData( CompleterData::Type &p_type, QList<QPair<QString, QVariant>> &p_rowData );
private:
QHash <CompleterData::Type, QList<QPair<QString, QVariant>>> m_data;
};
CompleterData.cpp
QHash < CompleterData::Type, QList<QPair<QString, QVariant>>> CompleterData::data()
{
return m_data;
}
void CompleterData::addData( CompleterData::Type &p_type, QList<QPair<QString, QVariant>> &p_rowData )
{
m_data.insert( p_type, p_rowData );
}
void CompleterData::setData( QHash < CompleterData::Type, QList<QPair<QString, QVariant>>> &p_data )
{
m_data = p_data;
}
在这种情况下,我在哪里出错?我知道这种错误在这里发布了很多次,但是每种情况都有其自己的原因,即使对于这种简单的情况,我仍然找不到原因。我使用VS 2017。