[c++] त्रुटि: xxx को क्वालिफायर क्वालिफायर के 'इस' तर्क के रूप में xxx पास करना



Answers

सदस्य कार्य जो क्लास इंस्टेंस को संशोधित नहीं करते हैं उन्हें const रूप में घोषित किया जाना चाहिए:

int getId() const {
    return id;
}
string getName() const {
    return name;
}

जब भी आप "क्वालिफायर छोड़ देते हैं" देखते हैं, तो यह const या volatile बारे में बात कर रहा है।

Question
#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: त्रुटि: 'छात्र छात्र' को 'int'T' getId () 'के' इस 'तर्क के रूप में गुजरने वाले क्वालीफायर

../main.cpp:35: त्रुटि: 'stst :: string'T' getName () 'क्वालिफायर को छोड़कर' इस 'तर्क के रूप में' कॉन्स्ट स्टूडेंट टी 'पास करना

इस कोड के साथ क्या गलत है? धन्यवाद!




Links



Tags

c++ c++