कहा जाना चाहिए I C++ (सी ++ 11 नहीं) का उपयोग कर रहा हूं। मुझे कक्षा के अंदर एक समारोह में एक सूचक बनाने की जरूरत है। मैं निम्नलिखित करने की कोशिश करता हूं:गैर स्थैतिक सदस्य फ़ंक्शन के संदर्भ को
void MyClass::buttonClickedEvent(int buttonId) {
// I need to have an access to all members of MyClass's class
}
void MyClass::setEvent() {
void (*func) (int);
func = buttonClickedEvent; // <-- Reference to non static member function must be called
}
setEvent();
लेकिन एक त्रुटि है: "गैर स्थैतिक सदस्य समारोह के संदर्भ को" "कहा जाना चाहिए। MyClass के किसी सदस्य को पॉइंटर बनाने के लिए मुझे क्या करना चाहिए?
आपके पास सदस्य फ़ंक्शन को असाइन किए गए फ़ंक्शन पॉइंटर नहीं हो सकते हैं। आपको या तो सदस्य, या एक नि: शुल्क फ़ंक्शन के लिए पॉइंटर का उपयोग करना होगा। – imreal
"सदस्य के लिए सूचक" से आपका क्या मतलब है? "फ्री फ़ंक्शन" के लिए आप एक कक्षा के बाहर एक समारोह का मतलब था? हाँ, मुझे पता है कि यह काम करेगा यदि मैं परिभाषा "शून्य MyClass :: buttonClickedEvent ..." से "MyClass ::" भाग को हटा दूंगा, लेकिन मुझे "buttonClickedEvent" फ़ंक्शन के अंदर MyClass के सदस्यों तक पहुंच की आवश्यकता है .. – JavaRunner