我需要 B 类来拥有 AToTime 对象的最小优先级队列。
AToTime 有 operator>
,但我收到错误告诉我没有运算符>匹配操作数...
#include <queue>
#include <functional>
using namespace std;
class B
{
public:
B();
virtual ~B();
private:
log4cxx::LoggerPtr m_logger;
class AToTime
{
public:
AToTime(const ACE_Time_Value& time, const APtr a) : m_time(time), m_a(a){}
bool operator >(const AToTime& other)
{
return m_time > other.m_time;
}
public:
ACE_Time_Value m_time;
APtr m_a;
};
priority_queue<AToTime, vector<AToTime>, greater<AToTime> > m_myMinHeap;
};
最佳答案
bool operator >(const AToTime& other)
它应该是一个 const 函数。
bool operator >(const AToTime& other) const
关于c++ - 我重载了运算符 > 但它仍然说没有运算符匹配操作数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2441705/