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


1 Answers

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

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

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

c++
#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 () 'क्वालिफायर को छोड़कर' इस 'तर्क के रूप में' कॉन्स्ट स्टूडेंट टी 'पास करना

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



Related


Tags

c++