今天用QMap<key,value>时,key是struct, 重载了< 以便qmap排序时使用。结果跳了半小时,愣是编译不过。最终找到原因,原来是写函数声明时bool operator< (const Struce& lhs)没有加const 。没有定义为常成员函数,因为map会调用less()比较函数,传入的compare函数需要为const 函数。
正确写法: bool operator< (const Struct& lhs)const;
今天用QMap<key,value>时,key是struct, 重载了< 以便qmap排序时使用。结果跳了半小时,愣是编译不过。最终找到原因,原来是写函数声明时bool operator< (const Struce& lhs)没有加const 。没有定义为常成员函数,因为map会调用less()比较函数,传入的compare函数需要为const 函数。
正确写法: bool operator< (const Struct& lhs)const;