传递我的引用 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();
}
参数lx
和rx
是常量引用。因此,您只能使用这些引用调用具有限定符 const 的成员函数。
与声明函数的方式相同 getStartTime
float getStartTime() const {return mStartTime;};
我正在尝试为向量创建一个排序函数。 这是我写的
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();
}
参数lx
和rx
是常量引用。因此,您只能使用这些引用调用具有限定符 const 的成员函数。
与声明函数的方式相同 getStartTime
float getStartTime() const {return mStartTime;};