क्या किसी संदर्भित वर्ग के अंदर किसी फ़ंक्शन में पॉइंटर रखने का कोई तरीका है?
मैंने किसी अन्य सूचक के साथ एक वर्ग के संदर्भ को बदलने की कोशिश की है, काम नहीं किया।
मैंने .
के बजाय ->
का उपयोग करने का भी प्रयास किया है, कोई भाग्य नहीं।
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 उत्तर
आपका सूचक प्रकार होना चाहिए
void (First::*ptr)()
और साथ असाइन करें
&First::FunToPointTo
चूंकि आपको यह निर्दिष्ट करने की आवश्यकता है कि फ़ंक्शन कक्षा प्रथम से है।
संबंधित सवाल
जुड़े हुए प्रश्न
नए सवाल
c++
C ++ एक सामान्य-प्रयोजन प्रोग्रामिंग भाषा है। यह मूल रूप से C के विस्तार के रूप में डिज़ाइन किया गया था और इसमें एक समान सिंटैक्स है, लेकिन यह अब पूरी तरह से अलग भाषा है। C ++ कंपाइलर के साथ संकलित कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें। विशिष्ट मानक संशोधन [C ++ 11], [C ++ 14], [C ++ 17], [C ++ 20] या [C ++ 23], आदि से संबंधित प्रश्नों के लिए संस्करण-विशिष्ट टैग का उपयोग करें। ।