मैं अब स्कॉट मेयर्स के अधिक प्रभावी सी ++ पढ़ रहा हूं। Edifying! आइटम 2 का उल्लेख है कि गतिशील_कास्ट न केवल डाउनकास्ट के लिए बल्कि भाई के लिए भी इस्तेमाल किया जा सकता है। क्या कोई भी भाई बहनों के उपयोग के लिए (उचित रूप से) गैर-प्रदूषित उदाहरण प्रदान कर सकता है? यह मूर्ख परीक्षण 0 जैसा प्रिंट करना चाहिए, लेकिन मैं इस तरह के रूपांतरणों के लिए किसी भी एप्लिकेशन की कल्पना नहीं कर सकता।भाई बहनों के गतिशील_कास्ट के लिए उपयोग केस क्या होगा?
#include <iostream>
using namespace std;
class B {
public:
virtual ~B() {}
};
class D1 : public B {};
class D2 : public B {};
int main() {
B* pb = new D1;
D2* pd2 = dynamic_cast<D2*>(pb);
cout << pd2 << endl;
}
:
आप एक
C
वस्तु के लिए एकA
सूचक है, तो आप एकB
सूचक है किC
वस्तु को प्राप्त कर सकते हैं 'क्रॉस-कास्ट' खोजें। इसका उपयोग तब किया जाता है जब एक वर्ग दो अलग-अलग वर्गों से प्राप्त होता है, न कि दूसरी तरफ (जैसा कि आपके प्रश्न में है)। –