c++ - Why is it impossible to get a pointer to a protected method of the base class? -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 6 जवाब
      वर्ग ए { सार्वजनिक: ए () {ऑटो टीएमपी = & amp; ए :: एफू;} संरक्षित: शून्य foo () {}}; वर्ग बी: सार्वजनिक ए {सार्वजनिक: बी () {ऑटो टीएमपी = & amp; ए :: एफू;}};   

    कक्षा कोई समस्या नहीं संकलित करता है क्लास <कोड> बी एक संकलन त्रुटि उत्पन्न करती है:

    'ए :: एफू': वर्ग 'ए' में घोषित संरक्षित सदस्य तक नहीं पहुंच सकता है < P> ऐसा क्यों है, तर्क क्या है? क्या इसमें कोई रास्ता नहीं है (यदि मुझे कॉलबैक, std :: function आदि के लिए उस सूचक की आवश्यकता है?)

    यदि आप a :: foo पर कोई संकेतक लेने में सक्षम थे, तो आप इसका उपयोग किसी भी वस्तु पर foo करने के लिए कर सकते हैं प्रकार या प्रकार सी से व्युत्पन्न :

      वर्ग बी: सार्वजनिक ए {सार्वजनिक: रहित एक्सएक्स (ए ए) {ऑटो टीएमपी = & amp; ए :: एफू; । एक * tmp (); } // अवैध}   

    इसके बजाय, B :: foo पर एक सूचक लें; यह ठीक है क्योंकि आप इसे केवल B , अपने खुद के वर्ग की वस्तुओं पर उपयोग कर सकते हैं।

Comments

Popular posts from this blog

ios - Adding an SKSpriteNode to SKScene from a child SKSpriteNode -

Matlab transpose a table vector -

c# - Textbox not clickable but editable -