传递我的引用 c++ 时使用 class 的 public 函数时出错

Error in using class's public function when passed my reference c++

我正在尝试为向量创建一个排序函数。 这是我写的

struct Xgreater
    {
        bool operator()( const lineCommand& lx, const lineCommand& rx ) const {
            return lx.getEndTime() < rx.getEndTime();
        }
    };

我的 class 是:

    class lineCommand {
    public:
        lineCommand(float startTime, float endTime);
        virtual ~lineCommand();
    //those are short inline functions:

    //setting the starting time of the command
    void setStartTime(const float num){mStartTime=num;};
    //setting the ending time of the command
    void setEndTime(const float num){mEndTime=num;};
    // returning the starting time of the command
    float getStartTime(){return mStartTime;};
    // returning the ending time of the command
    float getEndTime(){return mEndTime;};

private:
    float mStartTime;
    float mEndTime;
};

不在 xgreater 中。我在 eclipse 中收到错误消息:

Invalid arguments '
Candidates are:
float getEndTime()

超过:

lx.getEndTime and rx.getEndTime

按以下方式声明函数

float getEndTime() const {return mEndTime;};
                   ^^^^^

在此运算符声明中

    bool operator()( const lineCommand& lx, const lineCommand& rx ) const {
        return lx.getEndTime() < rx.getEndTime();
    }

参数lxrx是常量引用。因此,您只能使用这些引用调用具有限定符 const 的成员函数。

与声明函数的方式相同 getStartTime

float getStartTime() const {return mStartTime;};