簡體   English   中英

在地圖的類中定義運算符<(C ++)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM