एक कास्ट एक विशेष ऑपरेटर है जो एक डेटा प्रकार को दूसरे में परिवर्तित करने के लिए मजबूर करता है। एक ऑपरेटर के रूप में, अकास्ट यूनरी है और किसी भी अन्य यूनरी ऑपरेटर के समान पूर्वता रखता है।
अधिकांश C++ कंपाइलरों द्वारा समर्थित सबसे सामान्य कास्ट इस प्रकार है
(type) expression
जहां प्रकार वांछित डेटा प्रकार है। C++ द्वारा समर्थित अन्य कास्टिंग ऑपरेटर हैं, वे नीचे सूचीबद्ध हैं -
-
<मजबूत>? const_cast<प्रकार> (expr) कॉन्स्ट_कास्ट ऑपरेटर का उपयोग कास्ट में कॉन्स्ट और/या अस्थिर को स्पष्ट रूप से ओवरराइड करने के लिए किया जाता है। लक्ष्य प्रकार स्रोत प्रकार के समान होना चाहिए सिवाय इसके कॉन्स्ट या अस्थिर विशेषताओं के परिवर्तन को छोड़कर। इस प्रकार की कास्टिंग पास की गई वस्तु की const विशेषता को या तो सेट करने या हटाने के लिए हेरफेर करती है।
-
<मजबूत>? dynamic_cast<प्रकार> (expr) डायनामिक_कास्ट एक रनटाइम कास्ट करता है जो कास्ट की वैधता की पुष्टि करता है। यदि कास्ट नहीं किया जा सकता है, तो कास्ट विफल हो जाता है और अभिव्यक्ति शून्य हो जाती है। एक डायनेमिक_कास्ट पॉलीमॉर्फिक प्रकारों पर कास्ट करता है और ए * पॉइंटर को बी * पॉइंटर में तभी डाल सकता है जब वास्तव में जिस ऑब्जेक्ट की ओर इशारा किया जा रहा है वह बी ऑब्जेक्ट है।
-
<मजबूत>? reinterpret_cast
(expr) reinterpret_cast ऑपरेटर एक पॉइंटर को किसी अन्य प्रकार के पॉइंटर में बदल देता है। यह पॉइंटर से एक पूर्णांक प्रकार में और इसके विपरीत कास्टिंग की भी अनुमति देता है। -
<मजबूत>? static_cast<प्रकार> (expr) static_cast ऑपरेटर एक गैर-पॉलीमॉर्फिक कास्ट करता है। उदाहरण के लिए, इसका उपयोग बेस क्लास पॉइंटर को व्युत्पन्न क्लास पॉइंटर में डालने के लिए किया जा सकता है।
उपर्युक्त सभी कास्टिंग ऑपरेटरों का उपयोग कक्षाओं और वस्तुओं के साथ काम करते समय किया जाएगा। अभी के लिए, सी ++ में उपलब्ध एक साधारण कास्ट ऑपरेटरों को समझने के लिए निम्न उदाहरण का प्रयास करें। निम्नलिखित C++ प्रोग्राम को test.cpp फ़ाइल में कॉपी और पेस्ट करें और इस प्रोग्राम को कंपाइल और रन करें।
उदाहरण कोड
#include <iostream> using namespace std; main() { double a = 21.09399; float b = 10.20; int c ; c = (int) a; cout << "Line 1 - Value of (int)a is :" << c << endl ; c = (int) b; cout << "Line 2 - Value of (int)b is :" << c << endl ; return 0; }
आउटपुट
Line 1 - Value of (int)a is :21 Line 2 - Value of (int)b is :10