Simple Example of Type Casting in C++

Simple Example of Type Casting in C++: Computer में कई बार कई स्थानों पर जरूरत के आधार पर विभिन्न प्रकार के Type Conversions होते रहते हैं। कुछ Conversions Compiler स्वंय ही कर लेता है और कई बार हमें हमारी जरूरत के आधार पर कुछ Conversions करने होते हैं। जैसे मानलो कि हमें किसी Float प्रकार की संख्‍या को Integer में Convert करना पड सकता है या किसी Integer प्रकार की संख्‍या को Character में Convert करना पड सकता है।

int n = 20;
float PI = 3.1415;
n = PI + n;       // The Value is automatically converted to 20.0
cout << PI – 2;   // The value 2 is automatically converted to 2.0

इस Code Segment में जब Integer प्रकार के Variable में PI के Float प्रकार के मान को जोडना होता है, तो Compiler स्वयं ही n के मान 20 को Float प्रकार के मान 20.0 में Convert कर लेने के बाद PI के मान से जोडता है और Float प्रकार का मान ही Return करता है। लेकिन Assignment Operator के Left में n एक Integer प्रकार का Variable है, इसलिए n में Return होने वाले Float प्रकार के मान का केवल Integer Part ही Store होता है, दसमलव के बाद वाले मान Compiler Ignore कर देता है। इसी तरह से जब हम PI के मान में से Integer के मान 2 को घटाना चाहते हैं, तब Compiler स्वयं ही Integer मान 2 को Float प्रकार के मान 2.0 में Convert करने के बाद PI के मान में से घटाता है और Return होने वाले मान को Output में Screen पर Print करता है।

हम देख सकते हैं कि Integer प्रकार का मान Float प्रकार के मान में Automatically Convert होता है, लेकिन Float प्रकार का मान Integer प्रकार के मान में Automatically Convert नहीं होता है, बल्कि हमें स्वयं को Float प्रकार के मान को Integer प्रकार के मान में Convert करना होता है। ऐसा करने के लिए हम जिस Process को Use करते हैं, उसे Type Casting करना या Type Conversion करना कहते हैं, क्योंकि इस प्रक्रिया में एक Data Type को दूसरे Data Type में Convert किया जाता है। मानलो कि ConversionType CV वह Type है, जिसमें Value V को Convert करके ConvertedType CT में Store करना है, तो हमें इस Conversion को Perform करने के लिए निम्नानुसार Statement लिखना होगाः

   CT = (CV)V

मानलो कि V एक Float प्रकार का मान है, जिसे Integer प्रकार के मान में Convert करके एक Integer प्रकार के Variable में Store करना है। इस Type Casting को Perform करने के लिए हमें निम्नानुसार Statement लिखना होगाः

int CT;
float V = 123.699;
CT = (int)V;
cout << CT;    // Value of CT would be 123 After Type Casting

उपरोक्त Code Segment Float प्रकार के मान को Truncate करके केवल Integer Part को ही Return करता है, जो कि CT में Store हो जाता है। एक बात ध्यान रखें कि CT में Store होने वाला मान V के दसमलव वाले भाग को Round-Off नहीं करता है, बल्कि इस तरह Type Casting करने के कारण Compiler दसमलव वाले भाग को छोड देता है। इसी Manual Type Conversion के Syntax को एक दूसरे तरीके से भी लिख सकते हैं। ये तरीका C++ में तो Valid है लेकिन C में Valid नहीं है। यानी हम इसी Code Segment को निम्नानुसार भी लिख सकते हैं:

int CT;
   float V = 123.699;
   CT = int(V);
   cout << CT;    // Value of CT would be 123 After Type Casting

हमने इसी उदाहरण में दो बातें देखी हैं। पहली ये कि Integer प्रकार का मान Float प्रकार के मान में Convert हो रहा है। सामान्यतया जब किसी छोटी Size के Data Type से बडी Size के Data Type में मान Convert होता है, तो वह Conversion Compiler द्वारा Automatically होता है, जैसा कि पहले Code Segment में हुआ है। इसलिए इस प्रकार की Type Casting को Automatic Type Casting कहते हैं।

जबकि दूसरे Code Segment द्वारा हमने Float प्रकार के बडे Size के मान को छोटे Size के Integer प्रकार के मान में Convert करने के लिए C++ के Casting Concept को Use किया है। इसलिए इस प्रकार की Casting को Manual Type Casting कहते हैं। Compiler Automatic Type Casting को निम्न क्रम में करता हैः

// Automatic Type Conversion Flow by the Compiler

 char -> short -> int -> long -> float -> double

इस Flow से हम समझ सकते हैं कि Compiler Lower Size से Higher Size वाले Data Type में Convert होता है। यानी char प्रकार के मान को short में, short को int में int को long में long को float में व float को double में Convert करता है। यानी किसी Expression को Perform करने से पहले Compiler Expression के सभी Elements को सबसे Highest Data Type के मान में Convert कर देता है। उदाहरण के लिए निम्न Expression को देखिएः

int x = 23320;
   float y = 2.4
   short s = 1221
   long l;
   l = x + y – s;    // Expression

इस Expression में Assignment Operator के Right Side में सबसे बडा Data Type float है, इसलिए Integer प्रकार के Variable x का मान व short प्रकार के Variable s का मान दोनों मान float प्रकार के मान में Convert होने के बाद Calculate होंगे और Return होने वाला Result Float प्रकार का Return होगा, लेकिन Assignment Operator के Left Side में long प्रकार का Variable है, इसलिए Ling प्रकार के Variable l में Return होने वाला Float प्रकार का मान Long प्रकार में Convert होने के बाद Store होगा।

Input From The Keyboard

चलिए, अब हम देखते हैं कि User जो मान Keyboard से Input करता है, उसे C++ में किस प्रकार से Memory Variables में Store किया जा सकता है। निम्न Statement देखिए

int number ;
cin >> number ;

cin Object Keyboard को Represent करता है और ( >> ) Operator “get from Keyboard से Input किए जाने वाले मान को इसके Right Side में स्थित Variable number में Store कर देता है। सामान्यतया Input लेने से पहले हम User को Prompt करते हैं कि Program को किस प्रकार का मान चाहिए, इसके लिए हम cout का प्रयोग करते हैं। जैसेः

int age;
cout << “Enter your age: ” ‘
cin >> age;

ये Instructions Output Screen निम्नानुसार Run होते हैं –

Enter your age : 60

जहां User 60 Enter करता है।

हम get from Operator का प्रयोग एक ही Statements में कई बार करके कई Input प्राप्त कर सकते हैं, ठीक उसी तरह से जिस तरह से हमने पिछले Program में cout Object के “put to” Operator को Use करके एक ही Statement से कई मानों को Output में Print किया है।

int age;
float height;
cout << “Enter your age and height:”;
cin >> age >> height;

यहां User को हर Variable को मान प्रदान करने के बाद Enter Key, Space Key या Tab Key Press करना होता है। (Simple Example of Type Casting in C++)

Data Type Limits in CPP - Just Calculate It.
Numeric Overflow in C++

CPP Programming Language in Hindiये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook C++ Programming Language in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी। 

C++ Programming Language in Hindi | Page: 666 | Format: PDF

BUY NOW GET DEMO REVIEWS