सारांश
प्रकार केवल यह तय नहीं करता कि कोई डेटा कितने बाइट घेरता है, बल्कि यह भी कि उसके बिट कैसे पढ़े जाते हैं: एक ही बाइट char के लिए अक्षर “A” है और int के लिए संख्या 65। यह पाठ बुनियादी प्रकारों को वर्णों और बूलियन से पूरा करता है, और एक प्रकार से दूसरे प्रकार में जाने का अध्ययन करता है: अंतर्निहित रूपांतरण, जिन्हें कंपाइलर बिना माँगे करता है और जिनमें जानकारी खो सकती है; static_cast से किया गया स्पष्ट रूपांतरण; और ब्रेस इनिशियलाइज़ेशन, जो हानि को अस्वीकार करता है। अंत में यह स्थिरांकों, const और constexpr, का अध्ययन करता है, जो एक इरादे (“यह मान नहीं बदलता”) को ऐसी गारंटी में बदलते हैं जिसकी जाँच कंपाइलर करता है, और लिटरल तथा auto का, जो सोर्स कोड में लिखे मान का प्रकार तय करते हैं।
अधिगम उद्देश्य
- किसी वर्ण के संख्यात्मक कोड से गणना करना, उदाहरण के लिए वर्ण के रूप में पढ़े गए अंक का मान निकालना।
- पूर्णांकों, वास्तविक संख्याओं और बूलियन के बीच अंतर्निहित रूपांतरण के परिणाम का पूर्वानुमान लगाना, और
static_castसे स्पष्ट रूपांतरण लिखना। - समझाना कि ब्रेस इनिशियलाइज़ेशन जानकारी खोने वाले रूपांतरणों को क्यों अस्वीकार करता है, और हर स्थिति में GCC क्या करता है।
- हर उस मान को
constयाconstexprसे घोषित करना जिसे नहीं बदलना चाहिए, और इन दोनों शब्दों में भेद करना। - किसी लिटरल (
5,5u,5.0,5.0f,'5',"5") का प्रकार और वह प्रकार जोautoउसे देता है, निकालना।
व्याख्या के रूप में प्रकार
पाठ चर और मेमोरी ने चर को नाम, प्रकार और मान वाले मेमोरी सेल के रूप में प्रस्तुत किया, और पाठ पूर्णांक और उनका निरूपण तथा फ़्लोटिंग-पॉइंट संख्याएँ ने दिखाया कि सेल के भीतर संख्याएँ नहीं बल्कि बिट होते हैं, और प्रकार बताता है कि उन्हें कैसे पढ़ा जाए। यह पाठ इस विचार को उसके परिणाम तक ले जाता है: यदि प्रकार पढ़ने का नियम है, तो एक ही बिट जिस प्रकार से पढ़े जाते हैं उसके अनुसार अलग-अलग चीज़ों का अर्थ देते हैं, और किसी मान को एक प्रकार से दूसरे प्रकार में ले जाना, जिसे C++ में रूपांतरण कहते हैं, नियम बदलना है। कुछ रूपांतरण मान को सुरक्षित रखते हैं (पूर्णांक 7 बिना कुछ खोए वास्तविक संख्या 7.0 बन जाता है); कुछ उसे बदल देते हैं (वास्तविक संख्या 2.7 पूर्णांक 2 बन जाती है)। इससे वह प्रश्न निकलता है जो पूरे पाठ में चलता है: हर रूपांतरण में क्या मान सुरक्षित रहता है, और इसकी जाँच कौन करता है?
सामग्री लोड हो रही है…