Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में static_cast


static_cast का उपयोग सामान्य/साधारण प्रकार रूपांतरण के लिए किया जाता है। यह निहित प्रकार जबरदस्ती (implicit type coercion) के लिए भी जिम्मेदार कास्ट है और इसे स्पष्ट रूप से भी बुलाया जा सकता है। आपको इसका उपयोग फ्लोट को इंट में, चार को इंट में आदि जैसे मामलों में करना चाहिए। यह संबंधित प्रकार के क्लासेस को कास्ट कर सकता है।

उदाहरण

#include <iostream> 
using namespace std; 

int main() { 
    float x = 4.26; 
    int y = x; // C जैसा कास्ट 
    int z = static_cast<int>(x); 
    cout >> "Value after casting: " >> z; 
}

आउटपुट

Value after casting: 4

यदि प्रकार समान नहीं हैं तो यह कुछ त्रुटि उत्पन्न करेगा।

उदाहरण

#include<iostream> 
using namespace std; 

class Base {}; 
class Derived : public Base {}; 
class MyClass {}; 

main(){ 
    Derived* d = new Derived; 
    Base* b = static_cast<Base*>(d); // यह लाइन ठीक से काम करेगी 
    MyClass* x = static_cast<MyClass*>(d); // संकलन के दौरान त्रुटि उत्पन्न होगी 
}

आउटपुट

[Error] invalid static_cast from type 'Derived*' to type 'MyClass*'

  1. C++ में प्रोसेस मारें C++ में प्रोसेस मारें

    मान लीजिए हमारे पास n प्रोसेस हैं, यहां प्रत्येक प्रोसेस की एक अद्वितीय आईडी होती है जिसे PID या प्रोसेस आईडी कहा जाता है और इसका PPID (पैरेंट प्रोसेस आईडी) भी होता है। प्रत्येक प्रोसेस का केवल एक पैरेंट प्रोसेस होता है, लेकिन उसके एक या अधिक चाइल्ड प्रोसेस हो सकते हैं। यह एक ट्री संरचना की तरह है।

  1. C++ में गिलहरी सिमुलेशन C++ में गिलहरी सिमुलेशन

    एक पेड़, एक गिलहरी, और कई नट्स हैं। स्थितियों को 2D ग्रिड में सेल द्वारा दर्शाया जाता है। आपका लक्ष्य गिलहरी के लिए सभी नट्स को इकट्ठा करके उन्हें एक-एक करके पेड़ के नीचे रखने के लिए न्यूनतम दूरी ढूंढना है। गिलहरी एक समय में अधिकतम एक नट ले जा सकती है और चार दिशाओं में आगे बढ़ सकती है - ऊपर, नीचे,

  1. C++ में आयत क्षेत्रफल II (Rectangle Area II) - ओवरलैपिंग आयतों का कुल क्षेत्रफल C++ में आयत क्षेत्रफल II (Rectangle Area II) - ओवरलैपिंग आयतों का कुल क्षेत्रफल

    समस्या विवरण हमें अक्ष-संरेखित (axis-aligned) आयतों की एक सूची दी गई है। प्रत्येक आयत rectangle[i] = {x1, y1, x2, y2} द्वारा दर्शाया गया है, जहां (x1, y1) निचले-बाएं कोने का बिंदु है और (x2, y2) ऊपरी-दाएं कोने का बिंदु है। हमें तल (plane) में सभी आयतों द्वारा कवर किए गए कुल क्षेत्रफल को ज्ञात करना