我需要 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/

10-11 23:01