[英]Defining the operator < in a class for a map (c++)
所以我有一堂課:
class Time{
private:
string day;
string hour;
public:
//etc
}
我在課堂上定義了:
bool Time::operator <(const Time &t1) const {
if (day!= t1.see_day()) {
return day < t1.see_day();
}
else return hour < t1.see_hour;
}
當我編譯它給我一個錯誤:
“錯誤將'const Time'傳遞為std :: string Time :: see_day()的'this'參數”會丟棄限定符[-fpermissive]。
我只想創建一個迭代器來以升序寫入所有地圖。 我究竟做錯了什么?
您需要標記您的
Time::see_day() const
// ^^^^^
// needs to be const
像其他情況一樣
return day < t1.see_day();
您嘗試在const
實例上調用非const
成員函數(在這種情況下為t1
),並且這是禁止的,因此會出現錯誤。
與Time::see_hour()
問題相同(您還有一個錯字,該函數調用缺少括號)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.