मुझे कुछ समय पहले यह समस्या थी और मैंने छोड़ दिया लेकिन हाल ही में यह लौटा।किसी अन्य विधि से विधि में पॉइंटर को कैसे कॉल करें
#include <iostream>
class element2D;
class node2D
{
public:
void (element2D::*FunctionPtr)();
void otherMethod()
{ std::cout << "hello" << std::endl;
((this)->*(this->FunctionPtr))(); //ERROR<-------------------
}
};
class element2D
{
public:
node2D myNode;
void doSomething(){ std::cout << "do something" << std::endl; }
};
int main()
{
element2D myElement;
myElement.myNode.FunctionPtr = &element2D::doSomething; //OK
((myElement).*(myElement.myNode.FunctionPtr))(); //OK
return 0;
}
मैं चिह्नित लाइन पर त्रुटि मिल रही है:
pointer to member type 'void (element2D::)()' incompatible with object type 'node2D'
मैं मदद के लिए वास्तव में आभारी होगा। आज भी ऐसा ही सवाल था जिसने मुझे आंशिक रूप से मदद की: link। लेकिन यह मेरी समस्या का पूरा जवाब प्रतीत नहीं होता है।
दरअसल इन दो समस्याओं में केवल एक अंतर होता है - बिंदु जहां फ़ंक्शन कहा जाता है।
धन्यवाद अपना समय