इस एक उदाहरण प्रभावी सी ++ 3ed से लिया है, यह कहना है कि अगर static_cast
इस तरह से प्रयोग किया जाता है, वस्तु के आधार हिस्सा नकल की जाती है , और उस भाग से कॉल का आह्वान किया जाता है। मैं समझना चाहता था कि हुड के नीचे क्या हो रहा है, क्या कोई मदद करेगा?प्रश्न
class Window { // base class
public:
virtual void onResize() { } // base onResize impl
};
class SpecialWindow: public Window { // derived class
public:
virtual void onResize() { // derived onResize impl;
static_cast<Window>(*this).onResize(); // cast *this to Window,
// then call its onResize;
// this doesn't work!
// do SpecialWindow-
} // specific stuff
};
मैं टिप्पणी होगा भी static_cast का उपयोग कर यह एक ही कर सकते हैं,, लेकिन आप इस तरह से करने के लिए है, चूंकि 'static_cast (* यह) 'एक प्रतिलिपि बनाता है, यह कोड सबसे अधिक संभावना है ** इच्छित परिणाम का उत्पादन नहीं **। –
gatopeich