#include <iostream>
#include <set>
using namespace std;
class StudentT {
public:
    int id;
    string name;
public:
    StudentT(int _id, string _name) : id(_id), name(_name) {
    }
    int getId() {
        return id;
    }
    string getName() {
        return name;
    }
};
inline bool operator< (StudentT s1, StudentT s2) {
    return  s1.getId() < s2.getId();
}
int main() {
    set<StudentT> st;
    StudentT s1(0, "Tom");
    StudentT s2(1, "Tim");
    st.insert(s1);
    st.insert(s2);
    set<StudentT> :: iterator itr;
    for (itr = st.begin(); itr != st.end(); itr++) {
        cout << itr->getId() << " " << itr->getName() << endl;
    }
    return 0;
}
В строке:
cout << itr->getId() << " " << itr->getName() << endl;
Выдается сообщение об ошибке:
../main.cpp: 35: ошибка: передача 'const StudentT' в качестве аргумента 'this' аргумента 'int StudentT:: getId()' отбрасывает квалификаторы
../main.cpp: 35: ошибка: передача 'const StudentT' в качестве 'this' аргумента 'std::string StudentT:: getName()' отбрасывает квалификаторы
Что не так с этим кодом? Спасибо!