पैरामीटर के रूप में क्लास सदस्य फ़ंक्शन में पॉइंटर पास करना मैंने एक छोटा प्रोग्राम लिखा है जहां मैं कक्षा के सदस्य फ़ंक्शन को किसी अन्य फ़ंक्शन में पॉइंटर पास करने का प्रयास कर रहा हूं। क्या आप कृपया मेरी मदद कर सकते हैं और कहां गलत हो रहा हूं ..?पैरामीटर
#include<iostream>
using namespace std;
class test{
public:
typedef void (*callback_func_ptr)();
callback_func_ptr cb_func;
void get_pc();
void set_cb_ptr(void * ptr);
void call_cb_func();
};
void test::get_pc(){
cout << "PC" << endl;
}
void test::set_cb_ptr(void *ptr){
cb_func = (test::callback_func_ptr)ptr;
}
void test::call_cb_func(){
cb_func();
}
int main(){
test t1;
t1.set_cb_ptr((void *)(&t1.get_pc));
return 0;
}
जब मैं इसे संकलित करने का प्रयास करता हूं तो मुझे निम्न त्रुटि मिलती है।
error C2276: '&' : illegal operation on bound member function expression
मुझे हमेशा http://www.newty.de/fpt/index.html बहुत उपयोगी लगता है। – arne
सदस्य कार्य कार्य नहीं हैं। आपको जिस प्रकार की आवश्यकता है वह 'शून्य (परीक्षण :: *) (शून्य *)' –
केरेक एसबी सही है। हालांकि यदि आप अलग-अलग वर्गों और उदाहरणों के लिए एक ही सदस्य को कॉल करना चाहते हैं तो आपको विरासत और वर्चुअल के बारे में सोचना चाहिए ... –