Classes and Objects (Contd.) (Lecture 20)-urux5ZxeO3k 15.3 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
C ++ में प्रोग्रामिंग के मॉड्यूल(module) 11 के भाग-2 में आपका स्वागत है।
 इस मॉड्यूल(module) के पहले भाग में, हमने कक्षाएं(classes) की मूल अवधारणाओं और वस्तुओं के रूप में कक्षाएं(classes) के उदाहरणों को देखा है।
 हम समझ गए हैं, डेटा(data) सदस्य और तरीके क्या हैं।
 हमने विशेष रूप से जटिल संख्याओं के तीन उदाहरणों पर चर्चा की है; बिंदुओं के साथ और एक स्टैक(stack) के आयत वस्तुओं।
 हमने किसी वस्तु की पहचान के लिए "इस" सूचक को भी समझा है।
 शेष भाग में हम संक्षेप में चर्चा करेंगे कि वस्तु के स्टेट(state) के रूप में क्या जाना जाता है।
 यह एक धारणा है जो C ++ के संदर्भों में ऑब्जेक्ट(object)-ओरिएंटेड(oriented) प्रतिमान को लागू करने के तरीके से ली गई है।
 हम कहते हैं कि किसी वस्तु की स्थिति उसके सभी डेटा(data) सदस्यों के संयुक्त मूल्य से निर्धारित होती है।
 सरल शब्दों में, हम कहें कि यदि हम जटिल उदाहरण पर वापस जा रहे हैं।
 इसलिए, यह डेटा(data) हिस्सा निश्चित रूप से एक ही है, हमारे पास प्रदर्शन के उद्देश्य से कुछ अतिरिक्त तरीके हैं।
 तो, ये डेटा(data) सदस्य क्या कहते हैं? वे कहते हैं कि अगर मेरे पास एक जटिल संख्या है, अगर मैं इसे निकाल सकता हूं, तो एक जटिल संख्या है, इसमें एक 'पुनः(re)' घटक है और फिर एक 'im' घटक है।
 तो, यह एक जटिल संख्या है।
 इसलिए, अगर मैं कहता हूं कि c1 को 4.2, 5.3 के रूप में परिभाषित किया गया है, तो मैं कह सकता हूं कि यह c1 है और यह 4.2 है और यह 5.3 है।
 तो, हम कहते हैं कि स्टेट(state), स्टेट(state) की धारणा यह एक दोहरा(double) मूल्य है; इसका दोहरा(double) मूल्य भी है।
 तो, मुझे पता है कि मेरे पास फिर से मूल्य के रूप में कोई भी दोहरा(double) मूल्य हो सकता है।
 इसी तरह, मैं किसी भी दोहरे मान को im के मान के रूप में रख सकता हूं।
 इसलिए, दोहरे मूल्य की हर संभव जोड़ी जिसे मैं पुन: डाल सकता हूं और im करने के लिए एक अलग जटिल संख्या को सूचित करेगा।
 इसलिए, यदि मैं c1 में बदलता हूं, यदि मैं इस मान को बदलता हूं या यदि मैं इस मान को बदलता हूं या यदि मैं दोनों मान बदलता हूं।
 तो, हम कहेंगे कि c1 ने एक अलग स्टेट हासिल कर लिया है।
 जब तक किसी वस्तु के डेटा(data) सदस्य मानों का एक निश्चित संयोजन बनाए रखते हैं, हम कहते हैं कि यह एक स्थिति में है और जैसे ही डेटा(data) सदस्यों में से कोई भी इसके मूल्य में परिवर्तन करता है, हम कहते हैं कि यह एक अलग स्थिति में है।
 इसलिए, इसे इस तरह से देखा जाता है कि आखिरकार, प्रोग्रामिंग में, यह तय करने के बारे में है कि ऑब्जेक्ट(object) किस स्थिति में है और विधियों के उपयोग के साथ, वह वस्तु जो अगले स्टेट(state) में मिल सकती है।
 हम इन सभी गतियों को बाद में और अधिक देखेंगे, लेकिन यह सिर्फ आपको यह दिखाने के लिए है कि, गहराई से स्टेट(state) की धारणा क्या है? यह दिखाने के लिए कि हम यहां केवल चार विधियों का उपयोग करते हैं, बस उन्हें करीब से देखें, get_re; मूल रूप से, घटक पुन: रिटर्न को पढ़ता है।
 इसलिए, यदि c1 4.2, 5.3 है और यदि मैं c1.get_re का आह्वान करता हूं, तो मुझे स्पष्ट रूप से 4.2 मिलेगा।
 इसी तरह, अगर मैं get_im करता हूं, तो यह मुझे 5.3 लौटा देगा और बाकी दो सेट हैं।
 इसलिए, मूल रूप से अगर मैं एक मान को सेट_रे विधि में फिर से पास करता हूं, तो यह उस मूल्य को उस ऑब्जेक्ट(object) के re_ घटक में सेट करेगा जिस पर मैंने set_re कहा है।
 इसलिए, इन्हें आमतौर पर सेट विधि कहा जाता है, हम उन्हें और अधिक देखेंगे।
 तो, इसके साथ ही हम देखते हैं कि क्या हैंकिराया बताता है कि मैं इसमें जा सकता हूं? तो, यह प्रारंभिक एक है, यह 4.2, 5.3 के साथ आरंभिक है।
 इसलिए, सी की स्टेट(state) 1, 4.2, 5.3 है, क्योंकि दो डेटा(data) सदस्य हैं स्टेट(state) को यहां संख्या की एक जोड़ी के संदर्भ में दोगुना के संदर्भ में परिभाषित किया गया है।
 फिर, अगर मैं c.set_re(6.4) करता हूं, तो 4.2, 6.4 में बदल जाता है।
 तो, मेरे पास एक नया स्टेट(state) दो है जो 6.4 है, 5.3 यहाँ है, वह 2 स्टेट(state) है।
 अब, मान लीजिए कि हम c.get_re का आह्वान करते हैं, जो मूल रूप से अब c, जो c ऑब्जेक्ट(object) के पुनः घटक को पढ़ेगा, 6.4 है।
 तो, यह 6.4 लौटेगा, लेकिन आप ध्यान दे सकते हैं कि, ऑब्जेक्ट(object) के री या इम घटकों में कोई बदलाव नहीं हुआ है।
 इसलिए, आप यह निष्कर्ष निकालेंगे कि स्टेट(state) में कोई परिवर्तन नहीं है, इसलिए यह स्टेट(state) 2 में होना जारी है।
 लेकिन अगर मैं set_im (7.8) करता हूं, तो स्वाभाविक रूप से मेरा स्टेट(state) बदल जाएगा क्योंकि अब ऑब्जेक्ट(object) बन जाएगा (6.4,7.8)।
 तो, इस तरह से जैसे अलग-अलग ऑपरेशन किसी ऑब्जेक्ट(object) पर किए जाते हैं, यह अलग-अलग राज्यों से होकर गुजरता है और हम हमेशा कहते हैं कि डेटा(data) मेंबर एक तरह से ऑब्जेक्ट(object) की स्थिति को याद करते हैं।
 यह एक उदाहरण है जो एक आयत दिखा रहा है, यह कोने के बिंदु है और जैसा कि हमने कोने के बिंदुओं के विभिन्न निर्देशांक बदल दिए हैं या हम अनुपात की गणना करते हैं, हम दिखाते हैं कि वस्तु की स्थिति कैसे बदल रही है।
 स्टैक(stack) पर एक और उदाहरण है।
 तो, स्टैक(stack) में हमारे पास क्या था? हमारे पास एक डेटा(data) सरणी(array) और संकेतित शीर्ष है।
 इसलिए, स्टेट(state) में संपूर्ण सरणी(array) शामिल होगी।
 इसलिए, यदि डेटा(data) सरणी(array) का आकार 5 है, तो इसमें सभी वर्णों को दर्शाते हुए एक 5 ट्यूपल है, इस डेटा(data) सरणी(array) में एक और घटक शीर्ष है, जो शीर्ष का मान है।
 तो, ये सब मिलकर मुझे स्टेट(state) देंगे और ये सभी प्रश्न चिन्ह हैं क्योंकि शुरुआत में कुछ भी प्रारंभिक नहीं किया गया है।
 इसलिए, मुझे नहीं पता कि वस्तु किस स्थिति में है।
 लेकिन, फिर जैसे ही मैं शीर्ष पर इनिशियलाइज़ेशन करता हूं, यह माइनस 1 हो जाता है।
 इसलिए, मुझे कुछ अवस्था मिलती है, लेकिन मुझे अभी भी नहीं पता है, कि ऐरे की स्थिति क्या है म B धक्का मारता हूं।
 तो, पहला चरित्र बन जाता है, यह 0 में बढ़ जाता है, मेरी स्थिति बदल जाती है, मैं इस परिवर्तन को 'बी' 'ए' धक्का देता हूं।
 जब मैं खाली की जांच करता हूं तो यह खाली नहीं होता है और यह मुझे गलत लौटाता है और यह शीर्ष के सरणी(array) को नहीं बदलता है।
 तो, स्टेट(state) और इतने पर कोई परिवर्तन नहीं है।
 इसलिए, यदि आप इसका अनुसरण करने के लिए आगे बढ़ते हैं, तो आप देखेंगे कि पुश और पॉप के संचालन के साथ, हम वास्तव में स्टेट(state) बदल रहे हैं, जबकि शीर्ष और खाली के साथ हम स्टेट(state) को नहीं बदलेंगे और किसी भी बिंदु पर स्टैक(stack) का वर्णन किया जा सकता है।
 इसकी सरणी(array) की स्थिति और शीर्ष मार्कर की स्थिति के संदर्भ में।
 तो, आपने अक्सर राज्यों के बारे में सुना होगा।
 इसलिए, यह स्टेट(state) का मूल अर्थ है क्योंकि आप आगे बढ़ते हैं, हम ऑब्जेक्ट(object) पर व्यवहार के बारे में अधिक चर्चा करेंगे।
 इसलिए, इसके साथ हम मॉड्यूल(module) 11 को बंद कर देंगे।
 मॉड्यूल(module) 11 में, हमने निम्नलिखित को कवर किया है, जिसमें हमने डेटा(data) सदस्यों और विधियों के साथ एक वर्ग की मूल अवधारणा को समझा है।
 हमने देखा है कि विशेषताओं या डेटा(data) सदस्यों का नाम जटिल के नाम स्थान में रखा जा सकता है।
 तो, फिर से, re_ underscore का नाम वास्तव में complex :: re है और इतने पर।
 विधि का नाम भी इसी तरह से परिसर के नाम स्थान में रखा गया है।
 तो, एक विधि मानदंड का एक नाम जटिल :: मानदंड()है।
 ऑब्जेक्ट्स(objects) कक्षाएं(classes) की तात्कालिकताएं हैं और जब उन्हें त्वरित किया जाता है तो उन्हें इनिशियलाइज़ किया जा सकता है, धुरी का उपयोग डॉट ऑपरेटर के उपयोग के संदर्भ में किया जाता है और इसमें एक विशेष "यह" पॉइंटर होता है जो प्रत्येक वस्तु को उसके स्वयं के पते से पहचानता है, जिसका उपयोग में किया जा सकता है विभिन्न तरीकों।