Thursday 15 September 2011

visual c++ - Can you Hide a virtual method in c++? -


मेरे पास आभासी फ़ंक्शन के साथ एक बेस क्लास है।

  आभासी CString & amp; फू ();  

मैं इस तरह उपवर्ग में इसे अधिभार करना चाहता हूं

  CString Foo ();  

क्या आधार वर्ग वर्चुअल फ़ंक्शन को छुपाने का कोई तरीका है? Vb.net या C # में नए कीवर्ड की तरह कुछ

क्यों किसी को ऐसा कुछ करना होगा? यह बेस क्लास अनुबंध को तोड़ता है। यदि आप उप-वर्ग को लागू करना नहीं चाहते हैं जिसका आधार क्लास के समान इंटरफ़ेस है, तो आप सभी को क्यों प्राप्त करें? संरचना का उपयोग करें।

C + नया कीवर्ड में C ++ के बराबर नहीं है यदि आप वास्तव में ऐसा करने के लिए चाहते हैं तो आप हमेशा:

  • एक विधि को ओवरराइड कर सकते हैं उप-वर्ग में निजी के रूप में।

  • अधिभार बनाएं लेकिन अधिभार में अलग-अलग पैरामीटर होनी चाहिए।

लेकिन अगर आप ऐसा करते हैं, तो आईएमएचओ आपके डिजाइन में कुछ गलत है। मैं चाहता हूं कि प्रत्येक सी + + कंपाइलर को कम से कम इन दोनों स्थितियों को चेतावनी के रूप में पकड़ा गया।


No comments:

Post a Comment