क्या किसी संदर्भित वर्ग के अंदर किसी फ़ंक्शन में पॉइंटर रखने का कोई तरीका है?

मैंने किसी अन्य सूचक के साथ एक वर्ग के संदर्भ को बदलने की कोशिश की है, काम नहीं किया।
मैंने . के बजाय -> का उपयोग करने का भी प्रयास किया है, कोई भाग्य नहीं।

class First {
  void FunToPointTo();
};
class Second {
  First &reference;
  void (*pointer)();
  Second(First &first);
};

Second::Second(First &first) : reference(first) {
  pointer = reference.FunToPointTo;
}

त्रुटि: 'प्रथम :: FunToPointTo' को 'शून्य (प्रथम ::) ()' से 'शून्य (*) ()' टाइप करने के लिए परिवर्तित नहीं कर सकता

अब मैं किसी तरह अपने पॉइंटर को void (First::)() में बदलने की कोशिश कर रहा हूं, लेकिन मुझे सटीक सिंटैक्स नहीं पता है।

मदद की बहुत सराहना की जाती है, कृपया मेरे ज्ञान की कमी के लिए भी क्षमा करें क्योंकि मैं अभी सी ++ शुरू कर रहा हूं।

1
user10723935 12 फरवरी 2019, 17:28

1 उत्तर

सबसे बढ़िया उत्तर

आपका सूचक प्रकार होना चाहिए

void (First::*ptr)()

और साथ असाइन करें

&First::FunToPointTo

चूंकि आपको यह निर्दिष्ट करने की आवश्यकता है कि फ़ंक्शन कक्षा प्रथम से है।

1
Guillaume Racicot 12 फरवरी 2019, 14:55