• 3961阅读
  • 0回复

[讨论]QList自定义类型的成员比较问题 [复制链接]

上一主题 下一主题
离线liuyuanan
 

只看楼主 倒序阅读 楼主  发表于: 2014-08-13
自定义结构体typedef struct _Resource
{
    DWORD32 ID;
    DWORD32 resourceCode;
    DWORD32 type;
    
}TResource;

main()
{    
    TResource record;
    QList<TResource> tmpResourceList;
    tmpResourceList.append(record);
    tmpResourceList.append(record);
    tmpResourceList.append(record);
    tmpResourceList.contains(record);//报错:没有匹配的操作符==
}

解决方法:
将自定义结构体类型定义如下就可以了
typedef struct _Resource
{
    DWORD32 ID;
    DWORD32 resourceCode;
    DWORD32 type;
//重载操作符
    bool operator==(const _Resource &dept) const
    {
        if (memcmp(this, &dept, sizeof(_Resource)) == 0)
        {
            return true;
        }
        return false;
    }
}TResource;

除了这种方法,大家还有其他解决方法吗?
快速回复
限100 字节
 
上一个 下一个