इस मॉड्यूल(module)में हमने एक्सेस(access) स्पेसर्स को समझा है कि वे क्लास(class) के सदस्यों, सार्वजनिक और निजी लोगों की दृश्यता को नियंत्रित करने में कैसे मदद करते हैं।
इस मॉड्यूल(module)में हमने एक्सेस(access) स्पेसर्स को समझा है कि वे क्लास(class) के सदस्यों, सार्वजनिक और निजी लोगों की दृश्यता को नियंत्रित करने में कैसे मदद करते हैं।
इनका उपयोग किया जा सकता है जैसा कि हमने इंटरफ़ेस के माध्यम से व्यवहार को उजागर करते हुए एक क्लास(class) के कार्यान्वयन के बारे में जानकारी छिपाने के लिए देखा है और हमने विशेष रूप से देखा है कि गेट-सेट के तरीकों को एक विशिष्ट मुहावरे(idioms) का उपयोग अक्सर C ++ में बहुत बढ़िया अनाज नियंत्रण प्रदान करने के लिए किया जाता है।
इनका उपयोग किया जा सकता है जैसा कि हमने इंटरफ़ेस के माध्यम से व्यवहार को उजागर करते हुए एक क्लास(class) के कार्यान्वयन के बारे में जानकारी छिपाने के लिए देखा है और हमने विशेष रूप से देखा है कि गेट-सेट के तरीकों को एक विशिष्ट मुहावरे(idioms) का उपयोग अक्सर C ++ में बहुत बढ़िया अनाज नियंत्रण प्रदान करने के लिए किया जाता है।
आप अपने डिज़ाइन में जो डेटा(data) सदस्य उपलब्ध कराना चाहते हैं, उसके संदर्भ में इंटरफ़ेस।
आप अपने डिज़ाइन में जो डेटा(data) सदस्य उपलब्ध कराना चाहते हैं, उसके संदर्भ में इंटरफ़ेस।
@@ -121,4 +121,3 @@ C ++ में प्रोग्रामिंग(programming) के मॉ
...
@@ -121,4 +121,3 @@ C ++ में प्रोग्रामिंग(programming) के मॉ
जो कुछ भी निजी(private) है उसे अलग से भी परिभाषित किया जा सकता है।
जो कुछ भी निजी(private) है उसे अलग से भी परिभाषित किया जा सकता है।
लेकिन अभी के लिए, हम इसे अभी लेते हैं कि कार्यान्वयन(implementation) और इंटरफ़ेस को एक हेडर फ़ाइल में एक संयुक्त रूप से अलग किया जाएगा जो वर्ग(class) डेटा(data) सदस्यों(members) और वर्ग(class) विधियों को हस्ताक्षर के रूप में परिभाषित करता है।
लेकिन अभी के लिए, हम इसे अभी लेते हैं कि कार्यान्वयन(implementation) और इंटरफ़ेस को एक हेडर फ़ाइल में एक संयुक्त रूप से अलग किया जाएगा जो वर्ग(class) डेटा(data) सदस्यों(members) और वर्ग(class) विधियों को हस्ताक्षर के रूप में परिभाषित करता है।
एक क्लास कार्यान्वयन(implementation) फ़ाइल, जिसमें विधियों के सभी कार्यान्वयन(implementation) कोड(code) होते हैं, और एप्लिकेशन में क्लास हेडर फ़ाइल शामिल हो सकती है, क्लास हेडर फ़ाइल में विधियों का उपयोग शामिल होगा और एप्लिकेशन पर काम करने में सक्षम होगा।
एक क्लास कार्यान्वयन(implementation) फ़ाइल, जिसमें विधियों के सभी कार्यान्वयन(implementation) कोड(code) होते हैं, और एप्लिकेशन में क्लास हेडर फ़ाइल शामिल हो सकती है, क्लास हेडर फ़ाइल में विधियों का उपयोग शामिल होगा और एप्लिकेशन पर काम करने में सक्षम होगा।
@@ -11,7 +11,6 @@ C ++ का प्रोग्रामिंग में प्रोग्र
...
@@ -11,7 +11,6 @@ C ++ का प्रोग्रामिंग में प्रोग्र
तो, पहला संदेश है एरेस(arrays) का उपयोग C ++ में ठीक उसी तरह किया जा सकता है जैसा कि आप सी।
तो, पहला संदेश है एरेस(arrays) का उपयोग C ++ में ठीक उसी तरह किया जा सकता है जैसा कि आप सी।
में जानते हैं।
में जानते हैं।
इसलिए, हम यहाँ विभिन्न सरणी(array) तत्वों के लिए कुछ मान निर्दिष्ट कर रहे हैं और उन्हें प्रिंट कर रहे हैं, केवल अंतर प्रिंटफ(printf) का उपयोग करने या cout का उपयोग करने के संदर्भ में है।
इसलिए, हम यहाँ विभिन्न सरणी(array) तत्वों के लिए कुछ मान निर्दिष्ट कर रहे हैं और उन्हें प्रिंट कर रहे हैं, केवल अंतर प्रिंटफ(printf) का उपयोग करने या cout का उपयोग करने के संदर्भ में है।
।
अब, सी में मुख्य मुद्दों में से एक, उन एरेस(arrays) का उपयोग करने के संदर्भ में जो आप सभी का सामना करना पड़ा होगा, जब मैं सी में एक सरणी(array) का उपयोग करना चाहता हूं, तो मुझे जानना होगा; मुझे सरणी(array) के आकार को निर्दिष्ट करने की आवश्यकता है, जिसका अर्थ है कि उन तत्वों की अधिकतम संख्या जो सरणी(array) में पहले से हो सकती हैं, जो कि प्रोग्राम(program) लिखने के समय या प्रोग्राम(program) को संकलित करने के समय विशिष्ट हो।
अब, सी में मुख्य मुद्दों में से एक, उन एरेस(arrays) का उपयोग करने के संदर्भ में जो आप सभी का सामना करना पड़ा होगा, जब मैं सी में एक सरणी(array) का उपयोग करना चाहता हूं, तो मुझे जानना होगा; मुझे सरणी(array) के आकार को निर्दिष्ट करने की आवश्यकता है, जिसका अर्थ है कि उन तत्वों की अधिकतम संख्या जो सरणी(array) में पहले से हो सकती हैं, जो कि प्रोग्राम(program) लिखने के समय या प्रोग्राम(program) को संकलित करने के समय विशिष्ट हो।
इसलिए, अगर मुझे वह आकार नहीं पता है, तो मुझे एक आकार प्रदान करने की आवश्यकता है, जो कि मेरे द्वारा निष्पादित किए जाने वाले किसी भी एक मामले में, कार्यक्रम में चलने वाले से अधिक हो सकता है।
इसलिए, अगर मुझे वह आकार नहीं पता है, तो मुझे एक आकार प्रदान करने की आवश्यकता है, जो कि मेरे द्वारा निष्पादित किए जाने वाले किसी भी एक मामले में, कार्यक्रम में चलने वाले से अधिक हो सकता है।
निश्चित रूप से इस स्थिति को संभालने के दो तरीके हैं।
निश्चित रूप से इस स्थिति को संभालने के दो तरीके हैं।
...
@@ -86,4 +85,3 @@ C ++ का प्रोग्रामिंग में प्रोग्र
...
@@ -86,4 +85,3 @@ C ++ का प्रोग्रामिंग में प्रोग्र
इसलिए, यहां तक कि सी ++ की गहरी समझ में आए बिना आप केवल स्ट्रिंग(string) का उपयोग करना शुरू कर सकते हैं और अपने सभी कार्यक्रमों को अधिक स्मार्ट और लिखने में आसान बना सकते हैं।
इसलिए, यहां तक कि सी ++ की गहरी समझ में आए बिना आप केवल स्ट्रिंग(string) का उपयोग करना शुरू कर सकते हैं और अपने सभी कार्यक्रमों को अधिक स्मार्ट और लिखने में आसान बना सकते हैं।
इस मॉड्यूल(module) में हमने दिखाया है - हम एरेस(arrays) के साथ कैसे काम कर सकते हैं, वेक्टर(vector) कैसे वास्तव में एरेस(arrays) को चर आकार में आसान बना देता है और स्ट्रिंग(string) प्रकारों का उपयोग करके C ++ में स्ट्रिंग्स(strings) का संचालन बहुत आसानी से कैसे किया जा सकता है।
इस मॉड्यूल(module) में हमने दिखाया है - हम एरेस(arrays) के साथ कैसे काम कर सकते हैं, वेक्टर(vector) कैसे वास्तव में एरेस(arrays) को चर आकार में आसान बना देता है और स्ट्रिंग(string) प्रकारों का उपयोग करके C ++ में स्ट्रिंग्स(strings) का संचालन बहुत आसानी से कैसे किया जा सकता है।
@@ -56,4 +56,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
...
@@ -56,4 +56,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
विधि का नाम भी इसी तरह से परिसर के नाम स्थान में रखा गया है।
विधि का नाम भी इसी तरह से परिसर के नाम स्थान में रखा गया है।
तो, एक विधि मानदंड का एक नाम जटिल :: मानदंड()है।
तो, एक विधि मानदंड का एक नाम जटिल :: मानदंड()है।
ऑब्जेक्ट्स(objects) कक्षाएं(classes) की तात्कालिकताएं हैं और जब उन्हें त्वरित किया जाता है तो उन्हें इनिशियलाइज़ किया जा सकता है, धुरी का उपयोग डॉट ऑपरेटर के उपयोग के संदर्भ में किया जाता है और इसमें एक विशेष "यह" पॉइंटर होता है जो प्रत्येक वस्तु को उसके स्वयं के पते से पहचानता है, जिसका उपयोग में किया जा सकता है विभिन्न तरीकों।
ऑब्जेक्ट्स(objects) कक्षाएं(classes) की तात्कालिकताएं हैं और जब उन्हें त्वरित किया जाता है तो उन्हें इनिशियलाइज़ किया जा सकता है, धुरी का उपयोग डॉट ऑपरेटर के उपयोग के संदर्भ में किया जाता है और इसमें एक विशेष "यह" पॉइंटर होता है जो प्रत्येक वस्तु को उसके स्वयं के पते से पहचानता है, जिसका उपयोग में किया जा सकता है विभिन्न तरीकों।
@@ -93,7 +93,6 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
...
@@ -93,7 +93,6 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
यह पूरी तरह से नई अवधारणा है और यही सदस्य कार्य करेंगे।
यह पूरी तरह से नई अवधारणा है और यही सदस्य कार्य करेंगे।
इसलिए, हम विपरीत कर रहे हैं कि सी के रूप में, अगर हम किसी चीज को संरचना के रूप में परिभाषित करते हैं, तो हर ऑपरेशन हमें इसके साथ करने की आवश्यकता है, हमें कुछ वैश्विक(global) कार्यों के माध्यम से करने की आवश्यकता है जिसे कोई भी और हर कोई देख और उपयोग कर सकता है।
इसलिए, हम विपरीत कर रहे हैं कि सी के रूप में, अगर हम किसी चीज को संरचना के रूप में परिभाषित करते हैं, तो हर ऑपरेशन हमें इसके साथ करने की आवश्यकता है, हमें कुछ वैश्विक(global) कार्यों के माध्यम से करने की आवश्यकता है जिसे कोई भी और हर कोई देख और उपयोग कर सकता है।
जबकि C ++ में, क्लास(class) अपने आप में, कई सदस्य फ़ंक्शन(function) या पद्धति को परिभाषित कर सकती है, जिसे ऑब्जेक्ट(object) कुछ कार्यों को करने के लिए आवश्यक के रूप में लागू कर सकता है, और यह वह है जिसे ऑब्जेक्ट(object) के व्यवहार के रूप में जाना जाता है जैसा कि हम धीरे-धीरे देखेंगे।
जबकि C ++ में, क्लास(class) अपने आप में, कई सदस्य फ़ंक्शन(function) या पद्धति को परिभाषित कर सकती है, जिसे ऑब्जेक्ट(object) कुछ कार्यों को करने के लिए आवश्यक के रूप में लागू कर सकता है, और यह वह है जिसे ऑब्जेक्ट(object) के व्यवहार के रूप में जाना जाता है जैसा कि हम धीरे-धीरे देखेंगे।
।
तो, आइए हम कुछ और उदाहरण देखें।
तो, आइए हम कुछ और उदाहरण देखें।
आइए हम फिर से आयत(rectangle) बिंदु भाग को वापस लाएँ, इस भाग को आप पहले ही देख चुके हैं, इस भाग को आप पहले ही देख चुके हैं।
आइए हम फिर से आयत(rectangle) बिंदु भाग को वापस लाएँ, इस भाग को आप पहले ही देख चुके हैं, इस भाग को आप पहले ही देख चुके हैं।
यहां हम संरचना का उपयोग करके सी के लिए एक फ़ंक्शन(function) लिख रहे हैं, यह एक वैश्विक(global) फ़ंक्शन(function) है, जो आयत(rectangle) के क्षेत्र की गणना करता है।
यहां हम संरचना का उपयोग करके सी के लिए एक फ़ंक्शन(function) लिख रहे हैं, यह एक वैश्विक(global) फ़ंक्शन(function) है, जो आयत(rectangle) के क्षेत्र की गणना करता है।
...
@@ -153,4 +152,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
...
@@ -153,4 +152,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
और हमने देखा है कि हर ऑब्जेक्ट(object) की एक पहचान होती है, जिसे उस ऑब्जेक्ट(object) के तरीकों के "इस" सूचक में कैद किया जा सकता है, और जो उस पते का पता लगाता है जो ऑब्जेक्ट(object) का पता है।
और हमने देखा है कि हर ऑब्जेक्ट(object) की एक पहचान होती है, जिसे उस ऑब्जेक्ट(object) के तरीकों के "इस" सूचक में कैद किया जा सकता है, और जो उस पते का पता लगाता है जो ऑब्जेक्ट(object) का पता है।
इस बिंदु पर, मैं यह भी कहना चाहूंगा कि C ++ में, ऑब्जेक्ट(object)ओं की कोई अलग पहचान नहीं है।
इस बिंदु पर, मैं यह भी कहना चाहूंगा कि C ++ में, ऑब्जेक्ट(object)ओं की कोई अलग पहचान नहीं है।
तो, यह पॉइंटर(pointer) या ऑब्जेक्ट(object) का पता हर जगह के पते के रूप में लिया जाता है, जो कि अन्य ऑब्जेक्ट(object)-ओरिएंटेड(oriented) में से कुछ से अलग होता है।
तो, यह पॉइंटर(pointer) या ऑब्जेक्ट(object) का पता हर जगह के पते के रूप में लिया जाता है, जो कि अन्य ऑब्जेक्ट(object)-ओरिएंटेड(oriented) में से कुछ से अलग होता है।
@@ -153,4 +153,3 @@ C ++ में प्रोग्रामिंग(programming) के मॉ
...
@@ -153,4 +153,3 @@ C ++ में प्रोग्रामिंग(programming) के मॉ
यदि आपको एक अवसर मिलता है और सिस्टम सॉफ्टवेयर(software) इंजीनियरिंग(engineering) मॉडलिंग(modelling) के लिए ऑब्जेक्ट(object)-ओरिएंटेड(oriented) विश्लेषण और डिजाइन यूएमएल के माध्यम से जाना जाता है और यहां कुछ बहुत अच्छी किताबें हैं जो सी ++ या इस संबंधित विषयों से संबंधित हैं।
यदि आपको एक अवसर मिलता है और सिस्टम सॉफ्टवेयर(software) इंजीनियरिंग(engineering) मॉडलिंग(modelling) के लिए ऑब्जेक्ट(object)-ओरिएंटेड(oriented) विश्लेषण और डिजाइन यूएमएल के माध्यम से जाना जाता है और यहां कुछ बहुत अच्छी किताबें हैं जो सी ++ या इस संबंधित विषयों से संबंधित हैं।
(स्लाइडसमय देखे: 31:03) इसलिए, इसके साथ ही, मुझे यह कहते हुए बंद और संक्षेप में प्रस्तुत करना होगा कि C ++ पर पाठ्यक्रम समाप्त हो गया है।
(स्लाइडसमय देखे: 31:03) इसलिए, इसके साथ ही, मुझे यह कहते हुए बंद और संक्षेप में प्रस्तुत करना होगा कि C ++ पर पाठ्यक्रम समाप्त हो गया है।
सी ++ में एक बहुत ही कुशल, कुशल और विपुल प्रोग्रामर बनने के लिए आप सभी को अपनी परीक्षा और उससे आगे के लिए शुभकामनाएं।
सी ++ में एक बहुत ही कुशल, कुशल और विपुल प्रोग्रामर बनने के लिए आप सभी को अपनी परीक्षा और उससे आगे के लिए शुभकामनाएं।
@@ -65,6 +65,5 @@ C++ में प्रोग्रामिंग(Programming) के मॉड
...
@@ -65,6 +65,5 @@ C++ में प्रोग्रामिंग(Programming) के मॉड
इसलिए, इसके साथ हम वर्तमान मॉड्यूल के अंत में आते हैं।
इसलिए, इसके साथ हम वर्तमान मॉड्यूल के अंत में आते हैं।
यहाँ हमने C ++ में कॉन्स्ट-नेस(Const-ness) का अध्ययन किया है, C ++ में हमने कॉन्स्ट-नेस(Const-ness) के तीन रूपों को देखा है, ऑब्जेक्ट(object) पूरी तरह स्थिर हो सकता है और यदि ऑब्जेक्ट(object) स्थिर है, तो यह केवल निरंतर सदस्य कार्यों को लागू कर सकता है।
यहाँ हमने C ++ में कॉन्स्ट-नेस(Const-ness) का अध्ययन किया है, C ++ में हमने कॉन्स्ट-नेस(Const-ness) के तीन रूपों को देखा है, ऑब्जेक्ट(object) पूरी तरह स्थिर हो सकता है और यदि ऑब्जेक्ट(object) स्थिर है, तो यह केवल निरंतर सदस्य कार्यों को लागू कर सकता है।
इसलिए, हमने देखा है कि एक निरंतर सदस्य फ़ंक्शंस ऑब्जेक्ट(object) को बदल नहीं सकते हैं, लेकिन गैर-स्थिर ऑब्जेक्ट(object) भी निरंतर सदस्य फ़ंक्शंस को आमंत्रित कर सकते हैं और अगर हम किसी कर्मचारी की आईडी की तरह किसी वस्तु का चयन करना चाहते हैं, तो वह एक स्टूडेंट(student) का रोल नंबर(roll number) बना सकता है।
इसलिए, हमने देखा है कि एक निरंतर सदस्य फ़ंक्शंस ऑब्जेक्ट(object) को बदल नहीं सकते हैं, लेकिन गैर-स्थिर ऑब्जेक्ट(object) भी निरंतर सदस्य फ़ंक्शंस को आमंत्रित कर सकते हैं और अगर हम किसी कर्मचारी की आईडी की तरह किसी वस्तु का चयन करना चाहते हैं, तो वह एक स्टूडेंट(student) का रोल नंबर(roll number) बना सकता है।
; फिर हम संबंधित डेटा(data) सदस्य को निरंतर बना सकते हैं, फिर निरंतर सदस्य फ़ंक्शन(function) या गैर स्थिर सदस्य फ़ंक्शन(function), उनमें से कोई भी निरंतर डेटा(data) सदस्य को बदल नहीं सकता है।
फिर हम संबंधित डेटा(data) सदस्य को निरंतर बना सकते हैं, फिर निरंतर सदस्य फ़ंक्शन(function) या गैर स्थिर सदस्य फ़ंक्शन(function), उनमें से कोई भी निरंतर डेटा(data) सदस्य को बदल नहीं सकता है।
हमने यह भी देखा है कि C ++ डिफ़ॉल्ट(default) रूप से कॉन्स्ट(const) उपयोग में बिट वार कॉन्स्ट(const)-नेस(ness) का समर्थन करता है, लेकिन लॉजिकल कॉन्स्ट-नेस(Const-ness) को प्राप्त करने के लिए परस्पर डेटा(data) सदस्य का उपयोग करना संभव है, जो हमारे पास एक तार्किक रूप से स्थिर कॉन्स्ट-नेस(Const-ness) अवधारणा हो सकती है जिसे हम कोड कर सकते हैं उत्परिवर्तित डेटा(data) सदस्य का उपयोग करके C++।
हमने यह भी देखा है कि C ++ डिफ़ॉल्ट(default) रूप से कॉन्स्ट(const) उपयोग में बिट वार कॉन्स्ट(const)-नेस(ness) का समर्थन करता है, लेकिन लॉजिकल कॉन्स्ट-नेस(Const-ness) को प्राप्त करने के लिए परस्पर डेटा(data) सदस्य का उपयोग करना संभव है, जो हमारे पास एक तार्किक रूप से स्थिर कॉन्स्ट-नेस(Const-ness) अवधारणा हो सकती है जिसे हम कोड कर सकते हैं उत्परिवर्तित डेटा(data) सदस्य का उपयोग करके C++।
इसलिए, हमारे पास किसी स्थान पर 16 की एक सरणी का आवंटन है और फिर हम strcp y का उपयोग करके मेरे इनपुट स्ट्रिंग(string) को कॉपी करते हैं।
इसलिए, हमारे पास किसी स्थान पर 16 की एक सरणी का आवंटन है और फिर हम strcp y का उपयोग करके मेरे इनपुट स्ट्रिंग(string) को कॉपी करते हैं।
इसलिए, मेरे कार्ड के सदस्य को इस स्ट्रिंग(string) के लिए आरंभीकृत किया गया है और इसे यहाँ करना होगा, इसे आरंभीकरण सूची में करना होगा क्योंकि दोनों पॉइंटर कार्ड एमईएम(MEM) नंबर पॉइंटर के साथ-साथ स्ट्रिंग जो यह इंगित करेगा कि यह निरंतर हो जाएगा अब, लेकिन इसके साथ हम एक तरह से ऑब्जेक्ट की सुरक्षा और निर्माण करने में सक्षम हैं, ताकि आप क्रेडिट कार्ड(credit card) ऑब्जेक्ट(object) बन जाने के बाद कार्ड नंबर में कोई बदलाव न कर सकें।
इसलिए, मेरे कार्ड के सदस्य को इस स्ट्रिंग(string) के लिए आरंभीकृत किया गया है और इसे यहाँ करना होगा, इसे आरंभीकरण सूची में करना होगा क्योंकि दोनों पॉइंटर कार्ड एमईएम(MEM) नंबर पॉइंटर के साथ-साथ स्ट्रिंग जो यह इंगित करेगा कि यह निरंतर हो जाएगा अब, लेकिन इसके साथ हम एक तरह से ऑब्जेक्ट की सुरक्षा और निर्माण करने में सक्षम हैं, ताकि आप क्रेडिट कार्ड(credit card) ऑब्जेक्ट(object) बन जाने के बाद कार्ड नंबर में कोई बदलाव न कर सकें।
हमने अभी देखा है कि कैसे निरंतर वस्तुओं, निरंतर सदस्य कार्यों और निरंतर डेटा सदस्यों को बनाने के लिए और डिजाइन में इसका उपयोग कैसे करें।
हमने अभी देखा है कि कैसे निरंतर वस्तुओं, निरंतर सदस्य कार्यों और निरंतर डेटा सदस्यों को बनाने के लिए और डिजाइन में इसका उपयोग कैसे करें।
@@ -125,4 +125,3 @@ C ++ में प्रोग्रामिंग में फिर से
...
@@ -125,4 +125,3 @@ C ++ में प्रोग्रामिंग में फिर से
हमने डेटा(data) की अस्थिरता के लिए धारणा पेश की है और देखा है कि C ++ प्रोग्राम में वोलातिल(volatile) डेटा(data) का उपयोग कैसे किया जा सकता है।
हमने डेटा(data) की अस्थिरता के लिए धारणा पेश की है और देखा है कि C ++ प्रोग्राम में वोलातिल(volatile) डेटा(data) का उपयोग कैसे किया जा सकता है।
अगला, हमने पैरामीटर(parameter) फॉर्म सी के साथ मैक्रोज़(macros) को फिर से परिभाषित किया है और दिखाया है कि इनलाइन(inline) फ़ंक्शन(function) या फ़ंक्शन(function) इनलाइनिंग(inlining) का उपयोग मैक्रोज़(macros) के स्थान पर लाभ के साथ किया जा सकता है जो कि मैक्रोज़(macros) ऑफ़र के कई सिंटैक्टिक और सिमेंटिक समस्याओं को हल करता है।
अगला, हमने पैरामीटर(parameter) फॉर्म सी के साथ मैक्रोज़(macros) को फिर से परिभाषित किया है और दिखाया है कि इनलाइन(inline) फ़ंक्शन(function) या फ़ंक्शन(function) इनलाइनिंग(inlining) का उपयोग मैक्रोज़(macros) के स्थान पर लाभ के साथ किया जा सकता है जो कि मैक्रोज़(macros) ऑफ़र के कई सिंटैक्टिक और सिमेंटिक समस्याओं को हल करता है।
अंत में, हमने इनलाइन(inline) पर प्रतिबंधों को भी देखा है।
अंत में, हमने इनलाइन(inline) पर प्रतिबंधों को भी देखा है।
@@ -82,4 +82,3 @@ C ++ में प्रोग्रामिंग मॉड्यूल 13 क
...
@@ -82,4 +82,3 @@ C ++ में प्रोग्रामिंग मॉड्यूल 13 क
वास्तव में एक जटिल क्लास(class) के लिए एक विध्वंसक(destructor) कुछ भी नहीं कर सकता है, लेकिन खाली शरीर के साथ एक प्रदान करना हमेशा अच्छा होता है।
वास्तव में एक जटिल क्लास(class) के लिए एक विध्वंसक(destructor) कुछ भी नहीं कर सकता है, लेकिन खाली शरीर के साथ एक प्रदान करना हमेशा अच्छा होता है।
इसके साथ हम निर्माण और विनाश प्रक्रिया को बंद कर देंगे।
इसके साथ हम निर्माण और विनाश प्रक्रिया को बंद कर देंगे।
हमने सीखा है कि हर क्लास(class) में एक विध्वंसक(destructor) होगा, जो अद्वितीय है और जो स्वचालित ऑब्जेक्टस(objects) के लिए होगा, वह इस दायरे के अंत में प्राप्त किया जाएगा और इस विध्वंसक(destructor) के भीतर, हम किसी भी प्रकार के संसाधनों की सफाई कर सकते हैं, जो हम कर चुके हैं पर पकड़ है, और हमने यह भी देखा है कि कंपाइलर(compiler) एक डिफ़ॉल्ट(default) कंस्ट्रक्टर(constructor) प्रदान करता है और एक डिफॉल्ट(default) डिस्ट्रक्टर होता है बशर्ते उपयोगकर्ता ने क्लास के लिए डिस्ट्रक्टर या कंस्ट्रक्टर(constructor) न लिखा हो।
हमने सीखा है कि हर क्लास(class) में एक विध्वंसक(destructor) होगा, जो अद्वितीय है और जो स्वचालित ऑब्जेक्टस(objects) के लिए होगा, वह इस दायरे के अंत में प्राप्त किया जाएगा और इस विध्वंसक(destructor) के भीतर, हम किसी भी प्रकार के संसाधनों की सफाई कर सकते हैं, जो हम कर चुके हैं पर पकड़ है, और हमने यह भी देखा है कि कंपाइलर(compiler) एक डिफ़ॉल्ट(default) कंस्ट्रक्टर(constructor) प्रदान करता है और एक डिफॉल्ट(default) डिस्ट्रक्टर होता है बशर्ते उपयोगकर्ता ने क्लास के लिए डिस्ट्रक्टर या कंस्ट्रक्टर(constructor) न लिखा हो।
@@ -90,4 +90,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
...
@@ -90,4 +90,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
उदाहरण के लिए, यदि हम c2 के इस तात्कालिकता को देखते हैं, जब c2 को त्वरित रूप से प्राप्त किया जाएगा, तो स्वाभाविक रूप से इस निर्माणकर्ता के पास जो एक पैरामीटर(parameter) होगा, उसे आमंत्रित किया जाएगा।
उदाहरण के लिए, यदि हम c2 के इस तात्कालिकता को देखते हैं, जब c2 को त्वरित रूप से प्राप्त किया जाएगा, तो स्वाभाविक रूप से इस निर्माणकर्ता के पास जो एक पैरामीटर(parameter) होगा, उसे आमंत्रित किया जाएगा।
जबकि, अगर c1, जब c1 को तत्काल किया जा रहा है, तो दो मापदंडों वाले निर्माणकर्ता को आमंत्रित किया जाएगा, इसलिए इस मामले में ओवर लोडेड कंस्ट्रक्टर(constructor) के सभी नियम लागू होते हैं।
जबकि, अगर c1, जब c1 को तत्काल किया जा रहा है, तो दो मापदंडों वाले निर्माणकर्ता को आमंत्रित किया जाएगा, इसलिए इस मामले में ओवर लोडेड कंस्ट्रक्टर(constructor) के सभी नियम लागू होते हैं।
इस तरह से कंस्ट्रक्टरों को लोड किया जा सकता है और हम विभिन्न प्रकारों के संदर्भ में निर्माण प्रक्रिया लिख सकते हैं मापदंडों और उनके संयोजन और इतने पर और जैसा कि हम आगे बढ़ते हैं, हम कई और उदाहरण देखेंगे कि कैसे अतिभारित निर्माण विभिन्न वर्गों के लिए बहुत प्रभावी निर्माण तंत्र लिखने के लिए महत्वपूर्ण हो जाते हैं जिन्हें हमने बनाया था।
इस तरह से कंस्ट्रक्टरों को लोड किया जा सकता है और हम विभिन्न प्रकारों के संदर्भ में निर्माण प्रक्रिया लिख सकते हैं मापदंडों और उनके संयोजन और इतने पर और जैसा कि हम आगे बढ़ते हैं, हम कई और उदाहरण देखेंगे कि कैसे अतिभारित निर्माण विभिन्न वर्गों के लिए बहुत प्रभावी निर्माण तंत्र लिखने के लिए महत्वपूर्ण हो जाते हैं जिन्हें हमने बनाया था।
@@ -7,7 +7,6 @@ C ++ में प्रोग्रामिंग 14 के मॉड्यू
...
@@ -7,7 +7,6 @@ C ++ में प्रोग्रामिंग 14 के मॉड्यू
तो, आप फिर से उसके लिए कंस्ट्रक्टर(constructor) की नकल करेंगे।
तो, आप फिर से उसके लिए कंस्ट्रक्टर(constructor) की नकल करेंगे।
इसलिए, अब हम इस पर त्वरित उदाहरण देंगे।
इसलिए, अब हम इस पर त्वरित उदाहरण देंगे।
इसलिए, फिर से हमारे जटिल वर्ग के लिए, यहाँ कुछ भी अलग नहीं है, सिवाय हमने एक फंक्शन डिस्प्ले जोड़ा है जो यहाँ एक कॉम्प्लेक्स(complex) नंबर लेता है और इसे प्रिंट करता है और जिस तरंग को हमने डिज़ाइन किया है, यह डिस्प्ले फंक्शन कॉम्प्लेक्स(complex) नंबर एक मान के रूप में पास होता है।
इसलिए, फिर से हमारे जटिल वर्ग के लिए, यहाँ कुछ भी अलग नहीं है, सिवाय हमने एक फंक्शन डिस्प्ले जोड़ा है जो यहाँ एक कॉम्प्लेक्स(complex) नंबर लेता है और इसे प्रिंट करता है और जिस तरंग को हमने डिज़ाइन किया है, यह डिस्प्ले फंक्शन कॉम्प्लेक्स(complex) नंबर एक मान के रूप में पास होता है।
।
तो, यह मूल्य से एक कॉल है।
तो, यह मूल्य से एक कॉल है।
इसलिए, अब यदि आप उस क्रम को देखते हैं जिसमें निर्माणकर्ताओं को स्वाभाविक रूप से कहा जाता है, तो सबसे पहले इसे निष्पादित किया जाएगा।
इसलिए, अब यदि आप उस क्रम को देखते हैं जिसमें निर्माणकर्ताओं को स्वाभाविक रूप से कहा जाता है, तो सबसे पहले इसे निष्पादित किया जाएगा।
तो, कंस्ट्रक्टर(constructor) को इनवॉइस किया जाता है; ये आउटपुट(output)।
तो, कंस्ट्रक्टर(constructor) को इनवॉइस किया जाता है; ये आउटपुट(output)।
...
@@ -74,7 +73,8 @@ C ++ में प्रोग्रामिंग 14 के मॉड्यू
...
@@ -74,7 +73,8 @@ C ++ में प्रोग्रामिंग 14 के मॉड्यू
इसलिए, कृपया इसके माध्यम से जाएं और अपने आप को समझाएं कि आप निर्माण, विनाश और प्रतिलिपि निर्माण की पूरी प्रक्रिया को एक साथ समझते हैं।
इसलिए, कृपया इसके माध्यम से जाएं और अपने आप को समझाएं कि आप निर्माण, विनाश और प्रतिलिपि निर्माण की पूरी प्रक्रिया को एक साथ समझते हैं।
अब, निर्माता और विध्वंसक(destructor) की तरह, हमारे पास मुफ्त संस्करण हैं।
अब, निर्माता और विध्वंसक(destructor) की तरह, हमारे पास मुफ्त संस्करण हैं।
कॉपी(copy) कंस्ट्रक्टर(constructor) के लिए भी वही तंत्र उपलब्ध हैं।
कॉपी(copy) कंस्ट्रक्टर(constructor) के लिए भी वही तंत्र उपलब्ध हैं।
यदि प्रोग्रामर द्वारा उपयोगकर्ता द्वारा कोई कॉपी(copy) कंस्ट्रक्टर(constructor) प्रदान नहीं किया जाता है, अगर मैं एक क्लास लिखता हूं जिसमें कॉपी(copy) कंस्ट्रक्टर(constructor) नहीं है, तो कंपाइलर एक मुफ्त कॉपी(copy) कंस्ट्रक्टर(constructor) की आपूर्ति करेगा और कंपाइलर एक कॉपी(copy) प्रदान करेगा।
यदि प्रोग्रामर द्वारा उपयोगकर्ता द्वारा कोई कॉपी(copy) कंस्ट्रक्टर(constructor) प्रदान नहीं किया जाता है, अगर मैं एक क्लास लिखता हूं जिसमें कॉपी(copy) कंस्ट्रक्टर(constructor) नहीं है, तो कंपाइलर एक मुफ्त कॉपी(copy) कंस्ट्रक्टर(constructor) की आपूर्ति करेगा
और कंपाइलर एक कॉपी(copy) प्रदान करेगा।
कन्स्ट्रक्टर निश्चित रूप से ऑब्जेक्ट(object) को इनिशियलाइज़ नहीं कर सकता है क्योंकि यह नहीं जानता कि इसे कैसे करना है।
कन्स्ट्रक्टर निश्चित रूप से ऑब्जेक्ट(object) को इनिशियलाइज़ नहीं कर सकता है क्योंकि यह नहीं जानता कि इसे कैसे करना है।
तो, यह क्या करता है, यह बस एक सा प्रतिलिपि बनाता है जिसका अर्थ है कि यह ऑब्जेक्ट(object) की पूरी बिट प्रति को कॉपी(copy) से लेता है और एक अन्य बिट पैटर्न को ऑब्जेक्ट(object) के रूप में प्रतीत होता है।
तो, यह क्या करता है, यह बस एक सा प्रतिलिपि बनाता है जिसका अर्थ है कि यह ऑब्जेक्ट(object) की पूरी बिट प्रति को कॉपी(copy) से लेता है और एक अन्य बिट पैटर्न को ऑब्जेक्ट(object) के रूप में प्रतीत होता है।
अब, आप पूछेंगे कि इसमें गलत क्या है।
अब, आप पूछेंगे कि इसमें गलत क्या है।
...
@@ -190,4 +190,3 @@ C ++ में प्रोग्रामिंग 14 के मॉड्यू
...
@@ -190,4 +190,3 @@ C ++ में प्रोग्रामिंग 14 के मॉड्यू
कॉपी(copy) असाइनमेंट(assignment) ऑपरेटर(operator) में, हमने विशेष रूप से लिखा है कि कॉपी(copy) क्लोन क्या है, ताकि आप जान सकें कि यह आपके कॉपी(copy) असाइनमेंट(assignment) ऑपरेटर(operator) से क्या हो रहा है।
कॉपी(copy) असाइनमेंट(assignment) ऑपरेटर(operator) में, हमने विशेष रूप से लिखा है कि कॉपी(copy) क्लोन क्या है, ताकि आप जान सकें कि यह आपके कॉपी(copy) असाइनमेंट(assignment) ऑपरेटर(operator) से क्या हो रहा है।
तो, यह C1 से C2 की प्रतिलिपि बनाता है और फिर, आप प्रिंट शो देख सकते हैं कि C2 क्या है और फिर ये दोनों जहां पहले C2 को 3 में असाइन किए जाते हैं, फिर परिणाम C1 को सौंपा जाता है और फिर, वे प्रिंट करते हैं और स्वाभाविक रूप से रिवर्स उनके विनाश का क्रम।
तो, यह C1 से C2 की प्रतिलिपि बनाता है और फिर, आप प्रिंट शो देख सकते हैं कि C2 क्या है और फिर ये दोनों जहां पहले C2 को 3 में असाइन किए जाते हैं, फिर परिणाम C1 को सौंपा जाता है और फिर, वे प्रिंट करते हैं और स्वाभाविक रूप से रिवर्स उनके विनाश का क्रम।
तो, यह आपको स्पष्ट रूप से एक कक्षा में विभिन्न वस्तुओं के लिए कॉपी(copy) असाइनमेंट(assignment) की प्रक्रिया को दिखाएगा।
तो, यह आपको स्पष्ट रूप से एक कक्षा में विभिन्न वस्तुओं के लिए कॉपी(copy) असाइनमेंट(assignment) की प्रक्रिया को दिखाएगा।
@@ -82,4 +82,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
...
@@ -82,4 +82,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
इसलिए, गहरी प्रति(deep copy)लिपि के बाद 2 पॉइंटर्स मूल रूप से एक ही वस्तु के बाद दो अलग-अलग प्रतियों को इंगित करते हैं, लेकिन वे अलग-अलग ऑब्जेक्ट(object) बन जाते हैं।
इसलिए, गहरी प्रति(deep copy)लिपि के बाद 2 पॉइंटर्स मूल रूप से एक ही वस्तु के बाद दो अलग-अलग प्रतियों को इंगित करते हैं, लेकिन वे अलग-अलग ऑब्जेक्ट(object) बन जाते हैं।
इसलिए, गहरी प्रति(deep copy) और गहरी प्रति(shallow copy) का उपयोग स्वाभाविक रूप से विवेकपूर्ण तरीके से किया जाना चाहिए।
इसलिए, गहरी प्रति(deep copy) और गहरी प्रति(shallow copy) का उपयोग स्वाभाविक रूप से विवेकपूर्ण तरीके से किया जाना चाहिए।
निश्चित रूप से, यदि इसकी आवश्यकता नहीं है, तो हम गहरी कॉपी(copy) करने की कोशिश नहीं करेंगे क्योंकि इसमें इंगित किए गए डेटा की नकल शामिल होगी जो महंगा हो सकता है क्योंकि फिर से पुनरावर्ती तर्क द्वारा कॉपी(copy) निर्माण की आवश्यकता होगी, लेकिन सुरक्षा के मामले में, गहरी कॉपी(copy) का उपयोग करना गहरी प्रति(shallow copy) का उपयोग करने की तुलना में अक्सर अधिक सुरक्षित होता है।
निश्चित रूप से, यदि इसकी आवश्यकता नहीं है, तो हम गहरी कॉपी(copy) करने की कोशिश नहीं करेंगे क्योंकि इसमें इंगित किए गए डेटा की नकल शामिल होगी जो महंगा हो सकता है क्योंकि फिर से पुनरावर्ती तर्क द्वारा कॉपी(copy) निर्माण की आवश्यकता होगी, लेकिन सुरक्षा के मामले में, गहरी कॉपी(copy) का उपयोग करना गहरी प्रति(shallow copy) का उपयोग करने की तुलना में अक्सर अधिक सुरक्षित होता है।
हमने इसे कुछ उदाहरणों के साथ देखा है और हमने स्वचालित, स्थिर और गतिशील(dynamic) रूप से आवंटित वस्तुओं(objects) के लिए निर्माण और विनाश-आधारित ऑब्जेक्ट(object) जीवनकाल(lifetime) भी देखा है।
हमने इसे कुछ उदाहरणों के साथ देखा है और हमने स्वचालित, स्थिर और गतिशील(dynamic) रूप से आवंटित वस्तुओं(objects) के लिए निर्माण और विनाश-आधारित ऑब्जेक्ट(object) जीवनकाल(lifetime) भी देखा है।
इससे पहले कि हम कॉपी(copy) कंस्ट्रक्शन और कॉपी(copy) असाइनमेंट(assignment) ऑपरेशन के संदर्भ में ऑब्जेक्ट(object) कंस्ट्रक्शन के और आगे बढ़ें।
इससे पहले कि हम कॉपी(copy) कंस्ट्रक्शन और कॉपी(copy) असाइनमेंट(assignment) ऑपरेशन के संदर्भ में ऑब्जेक्ट(object) कंस्ट्रक्शन के और आगे बढ़ें।
ऑब्जेक्ट(object) जीवनकाल(lifetime) के लिए थोड़ा और अधिक लगेगा।
ऑब्जेक्ट(object) जीवनकाल(lifetime) के लिए थोड़ा और अधिक लगेगा।
And then we will primarily focus in this module to discuss on how objects can be copied. The process of copy, which in simple terms is, if x is a variable and y is another variable then assigning y to x is making a copy of y into x. Such copies have a lot more of meaning in terms of C++. So, in this module we will primarily take a look in to that and specifically discuss notions of shallow and deep copy. और फिर हम मुख्य रूप से इस मॉड्यूल(module) में ध्यान केंद्रित करेंगे कि वस्तुओं(objects) को कैसे कॉपी(copy) किया जा सकता है।
और फिर हम मुख्य रूप से इस मॉड्यूल(module) में ध्यान केंद्रित करेंगे कि वस्तुओं(objects) को कैसे कॉपी(copy) किया जा सकता है।
प्रतिलिपि की प्रक्रिया, जो सरल शब्दों में है, यदि x एक चर है और y एक अन्य चर है, तो y को x पर असाइन करना y की प्रतिलिपि x में बना रहा है।
प्रतिलिपि की प्रक्रिया, जो सरल शब्दों में है, यदि x एक चर है और y एक अन्य चर है, तो y को x पर असाइन करना y की प्रतिलिपि x में बना रहा है।
C ++ के संदर्भ में ऐसी प्रतियों का बहुत अधिक अर्थ है।
C ++ के संदर्भ में ऐसी प्रतियों का बहुत अधिक अर्थ है।
इसलिए, इस मॉड्यूल(module) में हम मुख्य रूप से उस पर एक नज़र डालेंगे और विशेष रूप से उथले और गहरी प्रतिलिपि की धारणाओं पर चर्चा करेंगे।
इसलिए, इस मॉड्यूल(module) में हम मुख्य रूप से उस पर एक नज़र डालेंगे और विशेष रूप से उथले और गहरी प्रतिलिपि की धारणाओं पर चर्चा करेंगे।
...
@@ -114,7 +114,8 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
...
@@ -114,7 +114,8 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
इसलिए, यदि आप सिर्फ इस सूची को पढ़ते हैं, तो नीचे से ऊपर की तरफ वह क्रम है जिसमें विनाश होगा यह ऑब्जेक्ट(object) है और यह सिर्फ आपके अभ्यास के लिए भी है, मैं यह सुझाव दूंगा कि यह स्वाभाविक रूप से मेरे त्वरित विवरण में हो सकता है यहां सभी विवरण देखने में सक्षम हैं, लेकिन पूरा कार्यक्रम प्रस्तुति में दिया गया है और आपके पास या यदि आप प्रस्तुति के माध्यम से जाते हैं और मैं आपको सुझाव दूंगा कि आप इसे अपने सिस्टम में चलाने का भी प्रयास करें और यह देखने का प्रयास करें कि आपको क्या मिल रहा है एक ही परिणाम और इस बारे में आश्वस्त हो जाएं कि वस्तुओं(objects) का अलग-अलग जीवनकाल(lifetime) क्या है जो आपको मिलता है जब आपने इस डेटा(data) सदस्य को इस तरह से नेस्टेड ऑब्जेक्ट्स दिए हैं।
इसलिए, यदि आप सिर्फ इस सूची को पढ़ते हैं, तो नीचे से ऊपर की तरफ वह क्रम है जिसमें विनाश होगा यह ऑब्जेक्ट(object) है और यह सिर्फ आपके अभ्यास के लिए भी है, मैं यह सुझाव दूंगा कि यह स्वाभाविक रूप से मेरे त्वरित विवरण में हो सकता है यहां सभी विवरण देखने में सक्षम हैं, लेकिन पूरा कार्यक्रम प्रस्तुति में दिया गया है और आपके पास या यदि आप प्रस्तुति के माध्यम से जाते हैं और मैं आपको सुझाव दूंगा कि आप इसे अपने सिस्टम में चलाने का भी प्रयास करें और यह देखने का प्रयास करें कि आपको क्या मिल रहा है एक ही परिणाम और इस बारे में आश्वस्त हो जाएं कि वस्तुओं(objects) का अलग-अलग जीवनकाल(lifetime) क्या है जो आपको मिलता है जब आपने इस डेटा(data) सदस्य को इस तरह से नेस्टेड ऑब्जेक्ट्स दिए हैं।
अब, हम एक नए प्रकार के कंस्ट्रक्टर(constructor) पर चर्चा करने के लिए आगे बढ़ेंगे और जिस कारण से मैंने यहाँ ऑब्जेक्ट(object) जीवनकाल(lifetime) पर चर्चा की है, क्या हम देखेंगे कि इस नए तरह के कंस्ट्रक्टर(constructor) के साथ वस्तुओं(objects) के जीवनकाल(lifetime) को नए आयाम मिलेंगे।
अब, हम एक नए प्रकार के कंस्ट्रक्टर(constructor) पर चर्चा करने के लिए आगे बढ़ेंगे और जिस कारण से मैंने यहाँ ऑब्जेक्ट(object) जीवनकाल(lifetime) पर चर्चा की है, क्या हम देखेंगे कि इस नए तरह के कंस्ट्रक्टर(constructor) के साथ वस्तुओं(objects) के जीवनकाल(lifetime) को नए आयाम मिलेंगे।
समझना।
समझना।
इसलिए, हम बस एक साधारण उदाहरण दिखाते हुए शुरू करते हैं, हम जानते हैं कि इस तरह से कॉम्प्लेक्स(complex) का निर्माण किया जा सकता है और यह एक कॉम्प्लेक्स(complex) कंस्ट्रक्टर(constructor) को बुलाएगा जैसे कि हमने कॉम्प्लेक्स(complex) क्लास को काफी बार देखा है, लेकिन मान लीजिए कि मैं इसे इस तरह से लिखता हूं कि इसका क्या मतलब है ।
इसलिए, हम बस एक साधारण उदाहरण दिखाते हुए शुरू करते हैं, हम जानते हैं कि इस तरह से कॉम्प्लेक्स(complex) का निर्माण किया जा सकता है और यह एक कॉम्प्लेक्स(complex) कंस्ट्रक्टर(constructor) को बुलाएगा
जैसे कि हमने कॉम्प्लेक्स(complex) क्लास को काफी बार देखा है, लेकिन मान लीजिए कि मैं इसे इस तरह से लिखता हूं कि इसका क्या मतलब है ।
तो, बस अंतर देखें, यहाँ यह इस तरह लिखा गया है, यहाँ यह है या अगर मैं इसे इस तरह लिखता हूँ।
तो, बस अंतर देखें, यहाँ यह इस तरह लिखा गया है, यहाँ यह है या अगर मैं इसे इस तरह लिखता हूँ।
यहां एक मुख्य अंतर है, मैंने कंस्ट्रक्टर(constructor) के मापदंडों को कॉमा द्वारा एक के बाद एक दो दोहरे नंबरों को निर्दिष्ट किया है।
यहां एक मुख्य अंतर है, मैंने कंस्ट्रक्टर(constructor) के मापदंडों को कॉमा द्वारा एक के बाद एक दो दोहरे नंबरों को निर्दिष्ट किया है।
जबकि, यहाँ मैंने एक जटिल ऑब्जेक्ट(object) का उपयोग किया है एक और जटिल ऑब्जेक्ट(object) c2 को आरंभ करने के लिए।
जबकि, यहाँ मैंने एक जटिल ऑब्जेक्ट(object) का उपयोग किया है एक और जटिल ऑब्जेक्ट(object) c2 को आरंभ करने के लिए।
...
@@ -152,4 +153,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
...
@@ -152,4 +153,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
आप पहले ही देख चुके हैं कि हम ऑब्जेक्ट(object) के जीवनकाल(lifetime) के पिछले उदाहरणों में एक मूल्य को दूसरे में नियमित रूप से कॉपी(copy) कर रहे हैं, लेकिन कॉपी(copy) किए गए मान आमतौर पर जहां भी निर्माण के लिए हमारे पास जो डेटा(data) सदस्य होते हैं वे आमतौर पर अंतर्निहित प्रकार के होते हैं, लेकिन अगर मुझे कॉपी(copy) करना है किसी उपयोगकर्ता के मान को डेटा(data) सदस्य के रूप में परिभाषित किया जाता है तो मुझे फिर से उसी स्थिति का सामना करना पड़ेगा जैसा कि मूल्य स्थिति द्वारा कॉल।
आप पहले ही देख चुके हैं कि हम ऑब्जेक्ट(object) के जीवनकाल(lifetime) के पिछले उदाहरणों में एक मूल्य को दूसरे में नियमित रूप से कॉपी(copy) कर रहे हैं, लेकिन कॉपी(copy) किए गए मान आमतौर पर जहां भी निर्माण के लिए हमारे पास जो डेटा(data) सदस्य होते हैं वे आमतौर पर अंतर्निहित प्रकार के होते हैं, लेकिन अगर मुझे कॉपी(copy) करना है किसी उपयोगकर्ता के मान को डेटा(data) सदस्य के रूप में परिभाषित किया जाता है तो मुझे फिर से उसी स्थिति का सामना करना पड़ेगा जैसा कि मूल्य स्थिति द्वारा कॉल।
इसलिए, यूडीटी के डेटा(data) सदस्यों को शुरू करने के लिए एक कॉपी(copy) कंस्ट्रक्टर(constructor) के अस्तित्व की आवश्यकता होगी, इसके बिना उस संबंधित प्रकार के डेटा(data) सदस्य को परिभाषित नहीं किया जा सकता है।
इसलिए, यूडीटी के डेटा(data) सदस्यों को शुरू करने के लिए एक कॉपी(copy) कंस्ट्रक्टर(constructor) के अस्तित्व की आवश्यकता होगी, इसके बिना उस संबंधित प्रकार के डेटा(data) सदस्य को परिभाषित नहीं किया जा सकता है।
हमने अभी देखा है; हमने ऑब्जेक्ट(object) लाइफटाइम पर दोबारा गौर किया है और हमने विशेष रूप से अलग-अलग ऑब्जेक्ट(object) लाइफटाइम परिदृश्यों पर गहराई से ध्यान दिया है, विशेष रूप से उपयोगकर्ता परिभाषित प्रकारों के साथ और डेटा(data) सदस्यों के ऑर्डर(order) के मुद्दे और ऑब्जेक्ट(object) के जीवनकाल(lifetime) पर उनके परिणाम पर चर्चा की है और हमें अभी-अभी शुरू किया गया है कॉपी(copy) कंस्ट्रक्टर।
हमने अभी देखा है; हमने ऑब्जेक्ट(object) लाइफटाइम पर दोबारा गौर किया है और हमने विशेष रूप से अलग-अलग ऑब्जेक्ट(object) लाइफटाइम परिदृश्यों पर गहराई से ध्यान दिया है, विशेष रूप से उपयोगकर्ता परिभाषित प्रकारों के साथ और डेटा(data) सदस्यों के ऑर्डर(order) के मुद्दे और ऑब्जेक्ट(object) के जीवनकाल(lifetime) पर उनके परिणाम पर चर्चा की है और हमें अभी-अभी शुरू किया गया है कॉपी(copy) कंस्ट्रक्टर।
@@ -138,4 +138,3 @@ C ++ में प्रोग्रामिंग मे मॉड्यूल
...
@@ -138,4 +138,3 @@ C ++ में प्रोग्रामिंग मे मॉड्यूल
यहाँ स्थैतिक का क्या मतलब है कि आप संकलन(compile) समय में यह सब करना चाहते हैं जो कि संकलक को इन कई रूपों के बीच तय करने में सक्षम होना चाहिए और आपको यह बताना चाहिए कि इन विभिन्न रूपों में से कौन से पॉलीमॉर्फिक रूप आप अपने फंक्शन(function) कॉल में उपयोग करने का प्रयास कर रहे हैं।
यहाँ स्थैतिक का क्या मतलब है कि आप संकलन(compile) समय में यह सब करना चाहते हैं जो कि संकलक को इन कई रूपों के बीच तय करने में सक्षम होना चाहिए और आपको यह बताना चाहिए कि इन विभिन्न रूपों में से कौन से पॉलीमॉर्फिक रूप आप अपने फंक्शन(function) कॉल में उपयोग करने का प्रयास कर रहे हैं।
तो, इस तरह के निर्णय या अधिभार तंत्र को एक साथ मिलाकर स्थैतिक बहुरूपता(polymorphism) के रूप में जाना जाता है।
तो, इस तरह के निर्णय या अधिभार तंत्र को एक साथ मिलाकर स्थैतिक बहुरूपता(polymorphism) के रूप में जाना जाता है।
बेशक, बहुरूपता(polymorphism) के अन्य रूप हैं, जिन्हें आमतौर पर गतिशील या रन प्रकार के बहुरूपता(polymorphism) कहा जाता है, जिस पर चर्चा करने के बाद हम C ++ भाषा के ऑब्जेक्ट बेस पार्ट पर चर्चा करते हैं।
बेशक, बहुरूपता(polymorphism) के अन्य रूप हैं, जिन्हें आमतौर पर गतिशील या रन प्रकार के बहुरूपता(polymorphism) कहा जाता है, जिस पर चर्चा करने के बाद हम C ++ भाषा के ऑब्जेक्ट बेस पार्ट पर चर्चा करते हैं।
@@ -197,4 +197,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
...
@@ -197,4 +197,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
इसके साथ हम इस मॉड्यूल(module) को समाप्त कर देंगे।
इसके साथ हम इस मॉड्यूल(module) को समाप्त कर देंगे।
और, अगले एक में हम उसी अवधारणा को आगे बढ़ाएंगे।
और, अगले एक में हम उसी अवधारणा को आगे बढ़ाएंगे।
और, देखें कि इसी तरह के ओवरलोडिंग(overloading) कॉन्सेप्ट को ऑपरेटरों के मामले में भी C ++ में लागू किया जा सकता है, जिसे ऑपरेटर ओवरलोडिंग(overloading) के रूप में जाना जाएगा।
और, देखें कि इसी तरह के ओवरलोडिंग(overloading) कॉन्सेप्ट को ऑपरेटरों के मामले में भी C ++ में लागू किया जा सकता है, जिसे ऑपरेटर ओवरलोडिंग(overloading) के रूप में जाना जाएगा।
यदि यह गैर-आभासी है, तो यह स्थैतिक(static) बाइंडिंग(binding) का उपयोग करेगा; यदि यह वर्चुअल(virtual) है, तो यह डायनामिक(Dynamic) बाइंडिंग(binding) के लिए कोड बनाएगा, ताकि रन टाइम में उपयोग किए जा रहे वास्तविक प्रकार के आधार पर बाइंडिंग(binding) का निर्णय लिया जाएगा।
यदि यह गैर-आभासी है, तो यह स्थैतिक(static) बाइंडिंग(binding) का उपयोग करेगा; यदि यह वर्चुअल(virtual) है, तो यह डायनामिक(Dynamic) बाइंडिंग(binding) के लिए कोड बनाएगा, ताकि रन टाइम में उपयोग किए जा रहे वास्तविक प्रकार के आधार पर बाइंडिंग(binding) का निर्णय लिया जाएगा।
संक्षेप में, हमने स्थैतिक(static) और डायनामिक(Dynamic) बाइंडिंग(binding) में गहराई से देखा है, और पॉलिमॉर्फिक (polymorphic) को समझने की कोशिश की है।
संक्षेप में, हमने स्थैतिक(static) और डायनामिक(Dynamic) बाइंडिंग(binding) में गहराई से देखा है, और पॉलिमॉर्फिक (polymorphic) को समझने की कोशिश की है।
और अगले मॉड्यूल(module) में, हम विभिन्न विशिष्ट मुद्दों पर अपनी चर्चा जारी रखेंगे जो पॉलिमॉर्फिक (polymorphic) प्रकारों के साथ उत्पन्न होती हैं।
और अगले मॉड्यूल(module) में, हम विभिन्न विशिष्ट मुद्दों पर अपनी चर्चा जारी रखेंगे जो पॉलिमॉर्फिक (polymorphic) प्रकारों के साथ उत्पन्न होती हैं।
C ++ में प्रोग्रामिंग के मॉड्यूल(module) 29 में आपका स्वागत है।
पिछले तीन मॉड्यूल(module) के बाद से, हम पॉलीमॉर्फिज्म(Polymorphism) के बारे में चर्चा कर रहे हैं, C ++ की डाइनैमिक(dynamic) बाइंडिंग(binding) विशेषता।
हमने देखा है कि कैसे क्लास(class)ओं के एक पदानुक्रम(hierarchy) पर, हमारे पास वर्चुअल(virtual) फ़ंक्शन(function) हो सकते हैं और कैसे वर्चुअल(virtual) फ़ंक्शन(function) डाइनैमिक(dynamic) रूप से सूचक या संदर्भ के लिए बाध्य करने के बजाय ऑब्जेक्ट(object) उदाहरण से बाँधते हैं, जिसके लिए एक विशेष वर्चुअल(virtual) फ़ंक्शन(function) को लागू किया जा रहा है।
हमने गैर-वर्चुअल(virtual) कार्यों और वर्चुअल(virtual) कार्यों के शब्दार्थों के बीच अंतर देखा है; आपने ओवरलोडिंग के तहत व्यवहार को देखा है।
हमने यह भी नोट किया है कि वर्चुअल(virtual) फ़ंक्शंस शुद्ध हो सकते हैं और जिस स्थिति में उन्हें बॉडी बनाने की ज़रूरत नहीं होती है और उन मामलों में संबंधित क्लास(class) ऐसे शुद्ध वर्चुअल(virtual) फ़ंक्शंस अमूर्त(abstract) बेस(base) क्लास होते हैं।
इसलिए, हमारे पास कम या ज्यादा पॉलीमोर्फिज्म(polymorphism) के सिद्धांत को कवर किया गया है जो C ++ में शामिल है।
इस मॉड्यूल(module) में और अगले हम उस ज्ञान का उपयोग करने का प्रयास करेंगे जो हमने पॉलीमॉर्फिज्म(Polymorphism) की विशेषता के संदर्भ में हासिल किया है और समस्याओं को सुलझाने और नमूना डिजाइन करने के मामले में संलग्न हैं।
इसलिए, इसे देखते हुए, वर्तमान मॉड्यूल(module) में और अगला लक्ष्य क्लास(class) पदानुक्रम(hierarchy) के साथ डिजाइन को समझना होगा।
विशेष रूप से, इस मॉड्यूल(module) में, हम सबसे पहले विभिन्न संयोजनों के साथ जुड़ेंगे और व्यायाम करेंगे, जब विभिन्न प्रकार के स्थैतिक(static) और डाइनैमिक(dynamic) बंधन ओवरलोडिंग के साथ मिश्रित हो जाते हैं तो यह कैसे काम करता है।
इसलिए, हम विचारों को समाप्त करने के लिए एक और थोड़ा सा सम्मिलित उदाहरण लेंगे और फिर कर्मचारियों के वेतन आवेदन को डिजाइन करने के एक उदाहरण के साथ शुरू करेंगे, जो अगले मॉड्यूल(module) में भी चलेगा।
वर्तमान मॉड्यूल(module) में, आप यह दिखाएंगे कि इस तरह के एप्लिकेशन(application) को C में कैसे डिज़ाइन किया जा सकता है और हम अगले मॉड्यूल(module) में पॉलीमोर्फिक(polymorphic) पदानुक्रम(hierarchy) का उपयोग करते हुए अंत में परिशोधन C ++ दिखाएंगे।
रूपरेखा हमेशा की तरह स्लाइड के बाईं ओर दिखाई देगी।
तो, आइए एक उदाहरण के साथ शुरुआत करें।
तो, इस उदाहरण में हमारे पास एक सरल स्ट्रक्चर(structure) है।
हमारे तीन क्लास(class) हैं; A एक आधार क्लास(class) है, B, A की विशेषज्ञता है और C, B का एक विशेषज्ञता है।
यह उस तरह से सरल है।
ईहा तीन कार्य हैं; एफ (), जी () और एच ()।
क्लास(class) ए में, एफ () और जी () को वर्चुअल(virtual) माना जाता है।
तो, वे पॉलिमॉर्फिक(polymorphic) हैं और हमारे पास एक क्लास(class) एच है जो गैर वर्चुअल(virtual) है।
क्लास(class) बी में, हमारे पास एफ () और एच () है, जिसका अर्थ है कि हम एफ () और ओवरराइडिंग एच () से आगे निकल रहे हैं, लेकिन हम बस जी () का उत्तराधिकार कर रहे हैं।
तो, B में g () का हस्ताक्षर नहीं है और जब हम h को ओवरराइड करते हैं तो हम दो काम करते हैं, एक है हम पैरामीटर(parameter) प्रकार को A * से B * में बदलते हैं और इसे एक पॉलिमॉर्फिक(polymorphic) फ़ंक्शन(function) भी बनाते हैं।
आगे C में, हमने C को विरासत में जो भी मिला है, उससे g () और h () को ओवरराइड किया है और C के संदर्भ में B में फ़ंक्शन(function) f () के वंशानुगत संस्करण का उपयोग किया है।
इसलिए, यह मूल स्ट्रक्चर(structure) है, हमने कई वस्तुओं का निर्माण किया है a , बी, सी और हमारे पास दो पॉइंटर(pointer) हैं; एक पॉइंटर(pointer) A को दूसरे पॉइंटर(pointer) B को है।
इस संदर्भ में, हमें क्या उत्तर देना है, अगर हमारे पास ये चार इनवोकेशन हैं, जो कि pa है ये पॉइंटर(pointer) फंक्शन(function) f को पैरामीटर(parameter) के साथ कार्य करता है, एक पैरामीटर(parameter) के साथ फ़ंक्शन(function) जी, दो अलग के साथ फ़ंक्शन(function) ज मापदंडों।
यदि हम इन चार आह्वानों को देखते हैं और यदि हम अलग-अलग स्तंभों पर देखने की कोशिश करते हैं जहाँ pa है, तो यह सूचक एक निश्चित वस्तुओं के पते के साथ सेट किया गया है, इसलिए यहां एक ए के पते के साथ सेट किया गया है, यहां बी ऑब्जेक्ट(object) और यहां C ऑब्जेक्ट(object) का कार्य इस मैट्रिक्स को भरना है, जो पहले से ही यहां भरा हुआ है।
इसलिए, मैं जो करूंगा, मैं बस आपको जल्दी से इस माध्यम से चलाऊंगा कि क्यों हम इस तरह से बाइंडिंग(binding) के निमंत्रण को देखना चाहिए कि वे क्या हैं।
इसलिए, शुरू करने के लिए, हम pa को &a असाइन किए जाने के साथ शुरू करते हैं और जो कहते हैं कि स्टैटिक(static) टाइप pa में A* लिए है जैसा कि हम आसानी से देख सकते हैं और डाइनैमिक(dynamic) प्रकार भी यह एक प्रकार का ऑब्जेक्ट(object) है।
तो, pa का डाइनैमिक(dynamic) प्रकार भी ए है।
इसलिए, चूंकि स्थैतिक(static) प्रकार pa है स्वाभाविक रूप से यह बाइंडिंग(binding) के लिए क्लास(class) ए में दिखता है और डाइनैमिक(dynamic) प्रकार ए स्पष्ट रूप से हमें बताता है कि निश्चित रूप से, इन सभी मामलों में वास्तव में क्लास(class) ए के कार्यों को लागू करें।
यहाँ ध्यान देने वाली बात केवल यह है कि h फंक्शन(function) के संदर्भ में जो A * पॉइंटर(pointer) लेता है, जबकि तीसरे मामले में हमने वास्तव में A * पॉइंटर(pointer) के साथ इसे आह्वान किया है, लेकिन पिछले मामले में हमने इसे B * पॉइंटर(pointer) से आह्वान किया है।
तो, यदि आप इस पर गौर करते हैं तो यह pa B * के साथ h () आह्वान कर रहा है ।
अब, हम पहले से ही जानते हैं कि B ISA A, और हम पहले से ही जानते हैं कि उपकास्ट संभव है।
तो, यह भी संभव होगा क्योंकि क्या होगा यह बी * पॉइंटर(pointer) है; ए * पॉइंटर(pointer) के लिए डाली जाएगी और फ़ंक्शन(function) को आह्वान मिलेगा और यही कारण है कि आपके पास इन दोनों मामलों में एक ही एच फ़ंक्शन(function) को आह्वान करते है।
तो, कुछ बहुत ही रोचक नहीं है कि हम अगले एक को देखें, अगला वह है जहां pa का स्थैतिक(static) प्रकार ए और बी का डाइनैमिक(dynamic) प्रकार है क्योंकि हमारे पास b ऑब्जेक्ट(object) है।
तो, स्वाभाविक रूप से फिर से एक प्रकार का सांख्यिकीय रूप से ए, यह हमेशा इस पर दिखेगा।
तो, अब जब आप pa -> f () करते हैं, तो यह फ़ंक्शन(function) को क्लास A में देखता है, और फिर यह पाता है कि फ़ंक्शन(function) f वर्चुअल(virtual) है, जिसका अर्थ है कि इसे डाइनैमिक(dynamic) रूप से बाध्य होना चाहिए।
यह वास्तविक वस्तु से बंधे होंगे, जो कि pa की ओर इशारा कर रहा है और वह वस्तु बी प्रकार है और बी इस फ़ंक्शन(function) को ओवरराइड करता है।
इसलिए, पहले के मामले में इसने A :: f () को लागू किया था, अब, यह B:: f () को सीधा करेगा।
दूसरे मामले में, जब हम pa invoking g () को देखते हैं, तो यह A:: g () को आमंत्रित करता है क्योंकि भले ही g वर्चुअल(virtual) है, B जी को ओवरराइड नहीं करता है।
क्लास(class) बी में कोई जी नहीं है।
इसलिए, वास्तव में क्योंकि यह वर्चुअल(virtual) है, यह वास्तव में बी :: जी (), लेकिन बी : : जी () ए : : जी () के समान है क्योंकि बी को फ़ंक्शन(function) जी को विरासत में मिला है।
तो, आपके पास यहां ए: जी () है।
पिछले दो मामलों में, आपके पास आगे कुछ भी नहीं है क्योंकि फ़ंक्शन(function) एच क्लास(class) ए में है गैर वर्चुअल(virtual) है।
तो, यह पॉइंटर(pointer) के प्रकार से बंधा हुआ है।
हमें तीसरे स्थान पर ले जाएँ, जहाँ मेरे पास टाइप C का एक ऑब्जेक्ट(object) है और मेरे पास इसका सूचक है।
स्वाभाविक रूप से, यदि फिर से देखने का पहला स्थान क्लास(class) ए है और हम फ़ंक्शन(function) च को आमंत्रित कर रहे हैं।
तो, f वर्चुअल(virtual) है, जिसका अर्थ है कि यह क्लास(class) C को भेजा जाएगा, वास्तव में इंगित ऑब्जेक्ट(object) का प्रकार।
तो, अगर यह क्लास(class) C को प्रेषण के लिए आमंत्रित किया जाता है, तो मूल रूप से हमें C :: f () को लागू करना चाहिए, लेकिन C f () को ओवरराइड नहीं करता है।
तो, C को केवल B से f विरासत में मिला है इसीलिए आपको यहाँ B:: f() मिलता है।
जबकि, जब आप फ़ंक्शन(function) g को लागू करने का प्रयास करते हैं, तब आप फिर से यहां आते हैं और आपके पास एक वर्चुअल(virtual) फ़ंक्शन(function) होता है, ताकि निश्चित रूप से C :: g () पर डिस्पैच हो जाए क्योंकि आपके पास C ऑब्जेक्ट(object) है।
तो, आपके पास C :: g () इस मामले में C ने लिखा है जो कुछ भी उसे विरासत में मिला था।
तो, इसका एक अलग C :: g() फ़ंक्शन(function) है।
तो, ये आह्वान किया जाता है और अंत में, एच फ़ंक्शन(function) के संदर्भ में फिर से आपके पास एक ही व्यवहार होता है क्योंकि वे वर्चुअल(virtual) कार्य नहीं हैं।
तो, यह कैसे व्यवहार करता है अगर ये तीन ऑब्जेक्ट्स(objects), मैं इन तीन ऑब्जेक्ट्स(objects) के लिए अपने पते का उपयोग करने के तरीकों को लागू करता हूं जैसे कि एक और एक प्रकार के पते के लिए एक पॉइंटर(pointer)।
तो, आगे हम देखते हैं कि क्या होता है अगर हम उसी तरह करते हैं जैसे बी प्रकार के सूचक का उपयोग करके उसी आह्वान को करने की कोशिश करते हैं।
तो, वह अगली स्लाइड में है।
तो, हम इस में हैं, इस तरफ कोई बदलाव नहीं हुआ है, जो बदल गया है वह सूचक आर इनिशियलाइज़ेशन है पोइंटर ब के।
अब, जिसे हम इनवोक करने के लिए उपयोग कर रहे हैं, पहले हम pa के संदर्भ में कर रहे थे, अब हम pb के संदर्भ में कर रहे हैं।
अब, निश्चित रूप से पहली चीज जो हम देखते हैं वह यह है कि एक pb a को पॉइंट करता है।
तो, हम क्या उम्मीद करते हैं? यहाँ स्थैतिक(static) प्रकार क्या है? स्थैतिक(static) प्रकार B * है, और यहाँ डाइनैमिक(dynamic) प्रकार क्या है A*।
तो, यदि यह असाइनमेंट(assignment) होना है, यदि यह असाइनमेंट(assignment) होना है, तो कुछ A* ऑब्जेक्ट(object) के रूप में बी* के लिए डाली जाए जो कि डाउनकास्ट(downcast) होने के लिए होता है।
इसलिए, इस डाउन कास्ट की अनुमति नहीं है।
इसलिए, इन सभी मामलों में, वास्तव में हम कुछ भी करने में सक्षम नहीं होंगे, क्योंकि यह विशेष रूप से असाइनमेंट(assignment) स्वयं त्रुटि करेगा, क्योंकि यह डाउन कास्ट के संदर्भ में एक त्रुटि है।
तो, ये मामले खत्म हो गए हैं।
आइए हम अगले एक पर जाएं, जो इसका उपयोग कर रहा है और जब हम ब ऑब्जेक्ट(object) को इंगित करते हैं।
तो, दोनों स्थैतिक(static) और डाइनैमिक(dynamic) प्रकार बी है।
इसलिए, जैसा कि हम पिछले मामले में करते हैं कि अगर मैं pb -> f() करता हूं, तो मैं वास्तव में यहां शुरू करता हूं क्योंकि सूचक का प्रकार यहां बी है अगर इसे लागू किया जाना चाहिए और f एक वर्चुअल(virtual) फंक्शन(function) है जैसा कि हमने देखा है कि यह एक वर्चुअल(virtual) फंक्शन(function) है और इसमें एक डायनामिक(Dynamic) है और यह एब ऑब्जेक्ट(object) को इंगित करता है।
तो, यह बी वस्तु के कार्य को आमंत्रित करना चाहिए।
इसी तरह, यदि हम g को आह्वान करते हैं तो इसे फिर से यहां शुरू करना चाहिए और इसी तरह से B:: g() को लागू करने का प्रयास करना चाहिए क्योंकि g फिर से एक वर्चुअल(virtual) कार्य है, लेकिन B ने g को अधिरोहित नहीं किया है।
तो, बी को केवल ए से जी फ़ंक्शन(function) विरासत में मिला है, तो आप देखते हैं कि ए :: जी () को आमंत्रित किया जाएगा।
आइए हम अगले एक को देखें जहां हम इस फ़ंक्शन(function) को लागू करने की कोशिश कर रहे हैं।
अब, जब हम इस फ़ंक्शन(function) को लागू करने का प्रयास करते हैं तो क्या होगा हम यहाँ हैं? तो, हम क्लास(class) बी में देखना शुरू करते हैं और क्लास(class) बी में क्या मेरे पास एक फ़ंक्शन(function) एच है जो वास्तव में एक फ़ंक्शन(function) है जो ए में फ़ंक्शन(function) से ओवरराइड किया जाता है।
इसलिए, जब मैं पीबी-> एच () करने की कोशिश करता हूं और अगर मैं पास और फिर वास्तविक पैरामीटर(parameter) का प्रकार A * है, जबकि औपचारिक पैरामीटर(parameter) का प्रकार, जो यह अपेक्षा करता है कि वह B * है।
तो, इसका मतलब है कि मुझे A * से B * तक वार्तालाप करने की आवश्यकता है, तभी मैं उस कॉल को करने में सक्षम होऊंगा, लेकिन निश्चित रूप से जैसा कि हम जानते हैं कि यह एक डाउन कास्ट है, यह एक डाउनकास्ट(downcast) का मामला है।
।
तो, यह अनुमति नहीं है।
तो, यह विशेष रूप से फ़ंक्शन(function) आह्वान बस संकलन नहीं करेगा।
आखिरी में आकर, जब आप h को इस pb के संदर्भ में आमंत्रित करते हैं और आप इसे देखने की कोशिश करते हैं तो यह B :: h () हो जाएगा क्योंकि आप निश्चित रूप से यहाँ दिखते हैं, आपके पास B प्रकार की वस्तु है।
तो, निश्चित रूप से आपके पास B :: h () होगा।
अंत में, जब आपके पास c ऑब्जेक्ट(object) है, तो यह इन मामलों को प्रबल करता है क्योंकि आप यहां से शुरू करते हैं और यह फ़ंक्शन(function) f एक वर्चुअल(virtual) है इसलिए, इसे C :: f() और C f को ओवरराइड नहीं किया गया है।
तो, यह वास्तव में क्या आह्वान करता है f कि सी विरासत में मिला है, जो कि बी :: एफ() है, इसलिए यह हिस्सा आसान है।
अब, यदि आप फ़ंक्शन(function) जी को आमंत्रित करते हैं, तो आप फिर से यहां शुरू करते हैं, अब ऐसा होता है कि आप एग नहीं देखते हैं, लेकिन जो ए जी है, आप यहां देखते हैं कि वास्तव में यह जी है, जो कि बी को क्लास(class) ए से विरासत में मिला है और यह फ़ंक्शन(function) ए है वर्चुअल(virtual)।
तो, वास्तव में बी: जी () क्लास(class) बी में फ़ंक्शन(function) जी क्लास(class) ए में फ़ंक्शन(function) जी के समान है और वास्तव में एक वर्चुअल(virtual) फ़ंक्शन(function) है।
तो, यह डाइनैमिक(dynamic) रूप से मौजूद ऑब्जेक्ट(object) के प्रकार के अनुसार प्रतिनिधि होगा।
तो, यह इसके माध्यम से सुनने की कोशिश करेगा और यह C:: g () को लागू करने की कोशिश करेगा, इसलिए यह फ़ंक्शन(function) है ताकि आपको C:: g() मिल जाए।
अगला मामला एक ऐसा ही है, यह वास्तव में इस कार्य के बाद से वर्चुअल(virtual) हो जाएगा ताकि आप यहां देखना शुरू करें।
तो, आप देखते हैं कि एच एक वर्चुअल(virtual) फ़ंक्शन(function) है।
तो, आप प्रतिनिधि को क्लास(class) C में भेजते हैं क्योंकि आपके पास C प्रकार की वस्तु है।
इसलिए, आप इस फ़ंक्शन(function) को लागू करने का प्रयास करते हैं और फिर आप पाते हैं कि वास्तविक पैरामीटर(parameter) प्रकार A * है और औपचारिक पैरामीटर(parameter) प्रकार B * है।
तो, बातचीत एक डाउनकास्ट(downcast) है।
तो, यह यहाँ फिर से मिलता है और इस कोड पर त्रुटि संकलन।
अंत में, जब आप h() को निश्चित रूप से pb करने का प्रयास करते हैं।
तो, आप यहाँ शुरू करते हैं कि आप paते हैं कि एच एक वर्चुअल(virtual) कार्य है।
तो, आप उस डायनेमिक ऑब्जेक्ट(object) के प्रकार के अनुसार डिस्पैच करते हैं जो आपको इसमें लाता है और आपके पास C:: h() है।
मैंने इसे जल्दी से इसके माध्यम से चलाया है, शायद यह आप में से कुछ के लिए थोड़ा तेज था।
यदि यह है तो कृपया कुछ और समय बिताने की कोशिश करें ताकि वीडियो को हर मामले में तर्क को समझने के लिए वीडियो को फिर से चला सकें, लेकिन इस तरह के मैंने स्टेटिक और नॉन स्टेटिक बाइंडिंग(binding) के सभी अलग-अलग मामलों को कवर करने की कोशिश की है, जो ओवरलोड हो सकते हैं और क्या अपकास्ट और डाउनकास्ट(downcast) के संदर्भ में कास्ट किया जा सकता है।
इसलिए, इसके साथ अब हम आगे बढ़ेंगे।
इसके साथ हम एक समस्या उठाएंगे, जिसे हम इस मॉड्यूल(module) के शेष भाग में हल करने की कोशिश करेंगे और अगले यह एक स्टाफ वेतन प्रसंस्करण समस्या है।
तो, आइए हम एक ऐसे संगठन के बारे में सोचते हैं जिसे कर्मचारियों के लिए एक वेतन प्रसंस्करण अनुप्रयोग विकसित करने की आवश्यकता है।
तो, हमारे पास जो जानकारी है वह हमारे पास है की संगठन में केवल एक इंजीनियरिंग डिवीजन है, जहां इंजीनियर(engineer) और प्रबंधक प्रत्येक इंजीनियर(engineer) रिपोर्ट को एक प्रबंधक के लिए काम करते हैं और एक प्रबंधक भी एक इंजीनियर(engineer) के रूप में काम कर सकते हैं।
लेकिन जो अलग है वह इंजीनियर(engineer) के लिए वेतन प्रसंस्करण तर्क है और प्रबंधकों के लिए अलग हैं, संभवतः प्रबंधकों के पास कुछ बोनस और सब कुछ है।
इसलिए, एक ही फ़ंक्शन(function) का उपयोग उन दोनों के वेतन को संसाधित करने के लिए नहीं किया जा सकता है।
इसके अलावा संगठन क्या चाहता है कि भविष्य में कुछ निकट भविष्य में वे भी संभवतः इस प्रभाग में निदेशकों की नियुक्ति करेंगे और फिर कुछ प्रबंधक अलग-अलग निदेशकों और निदेशकों को रिपोर्ट करेंगे, यदि आवश्यकता होगी तो प्रबंधक और इतने पर भी काम करेंगे और निदेशकों के पास होगा खुद के वेतन के लिए प्रसंस्करण तर्क।
भविष्य में और नीचे, संगठन यह कहना चाहता है कि भविष्य में और नीचे जो अभी उनके विचार में नहीं है, लेकिन वे हैं कि वे अन्य डिवीजनों को भी खोल सकते हैं जैसे वे एक बिक्री प्रभाग खोल सकते हैं और अपने कार्य बल का पूरी तरह से विस्तार कर सकते हैं ।
इसलिए, इस संदर्भ में जो आवश्यक है वह है कि हमें एक उपयुक्त एक्स्टेंसिबल डिज़ाइन, डिज़ाइन बनाने की आवश्यकता है ताकि हम मौजूदा कोड में महत्वपूर्ण परिवर्तन किए बिना या वेतन के प्रसंस्करण के लिए नए कर्मचारी प्रकार और नए प्रसंस्करण तर्क को आवश्यक जोड़ सकें, आवेदन में बिलकुल भी बदलाव नहीं करना चाहिए जो अंत में वेतन की प्रक्रिया करता है, यह मूल लक्ष्य है।
तो, चलिए शुरू करते हैं।
इसलिए, मैं एक समाधान से सुराग लूंगा, जिसे हम C में करेंगे और हमें यह मानने देंगे कि हमारे पास सिर्फ C है और हम यह कहते हैं कि इस समस्या का हल पहले संस्करण के रूप में कैसे निकाला जाएगा, जहां हमारे पास दो प्रकार के कर्मचारी हैं; इंजीनियरों और प्रबंधक।
इसलिए, ऐसे कई सवाल हैं जिनका जवाब आपको डिज़ाइन और वास्तव में कोड के साथ शुरू करने से पहले देना होगा, उदाहरण के लिए, आप इंजीनियरों और प्रबंधकों की इन अवधारणाओं का प्रतिनिधित्व कैसे करते हैं, उन्हें किसी तरह प्रतिनिधित्व करना होगा।
इसलिए, चूंकि आप सी में हैं, तो विकल्प लगभग तुच्छ है कि आप उस स्ट्रक्चर(structure) का उपयोग करेंगे जो कोई समस्या नहीं है।
आप इन वस्तुओं को उनके नाम, उनके पदनाम, उनके मूल वेतन आदि के साथ कैसे आरंभ करते हैं? निश्चित रूप से, आपको कुछ आरंभिक कार्य करने होंगे जो हर स्ट्रक्चर(structure) प्रकार के लिए काम करते हैं।
तीसरा एक गहरा सवाल है, आखिरकार, अगर हमारे पास स्ट्रक्चर(structure)एं हैं तो हमारे पास इंजीनियर(engineer) के लिए कुछ स्ट्रक्चर(structure) होगी और प्रबंधकों के लिए कुछ स्ट्रक्चर(structure) होगी।
ये दो प्रकार के स्ट्रक्चर(structure) प्रकार हैं।
इसलिए, यदि हमारे पास ऐसा है तो निश्चित रूप से हम इंजीनियरों और प्रबंधकों की एक सरणी नहीं बना सकते हैं।
इसलिए, हमें एक कंटेनर की आवश्यकता होगी क्योंकि हम केवल इंजीनियरों की एक सरणी बना सकते हैं या प्रबंधकों की एक सरणी बना सकते हैं, लेकिन यदि आप ऐसा करते हैं तो हर बार जब हम एक नए प्रकार के कर्मचारी को जोड़ते हैं तो प्रसंस्करण खंडित हो जाएगा।
इसलिए, हमारे पास एक कंटेनर होना चाहिए जिसमें किसी भी प्रकार की वस्तुएं हो सकती हैं जिन्हें हम एक साथ रख सकते हैं।
तो, सी में समाधान मूल रूप से संघ की सरणी का उपयोग कर रहा है।
इसलिए, हम क्या कर सकते हैं कि हम कह सकते हैं कि मेरे पास एक स्ट्रक्चर(structure) है, जिसमें एक निश्चित क्षेत्र है, टाइप करें और फिर उसके भीतर इसका एक संघ है जिसमें कई अलग-अलग क्षेत्र हैं, कहते हैं कि यह इंजीनियर(engineer) का सूचक है, यह प्रबंधक का सूचक है इस तरह।
तो, ऐसा क्या होता है जब आप उसे रखना चाहते हैं, जब आप एक इंजीनियर(engineer) रिकॉर्ड रखना चाहते हैं तो आप यहाँ एक विशिष्ट प्रकार का मूल्य रखते हैं, कहते हैं कि प्रकार मान एर है और फिर इस सूचक को सेट करें जो कि इंजीनियर(engineer) ऑब्जेक्ट(object) को इंगित करने के लिए है।
स्ट्रक्चर(structure) के विशेष उदाहरण की ओर इशारा करते हैं, लेकिन जब आपको प्रबंधक के साथ सौदा करना होता है तो आप इस प्रकार को कुछ प्रबंधक मान, प्रबंधक प्रकार कहते हैं और इस सूचक को प्रबंधक आवृत्ति पर सेट करते हैं।
फिर इसमें किसी भी तत्व के आधार पर यदि आप पहली बार टाइप करते हैं कि क्या यह Er है या यह Mgr है, तो आप यह तय कर सकते हैं कि संघ के किस क्षेत्र का उपयोग करना है और उसका उचित उपयोग करना है।
तो, यह एक अच्छा डिज़ाइन रैपर है जो C वस्तुओं के एक कंटेनर को रखने के लिए बड़े पैमाने पर उपयोग करता है जो मिश्रित प्रकार के होते हैं।
इसलिए, हमें इसका उपयोग करना होगा।
अब, निश्चित रूप से सवाल है कि हमारे पास अलग-अलग वेतन प्रसंस्करण कैसे हैं, यह आरंभीकरण की तरह है।
इसलिए, जिसे हमें हर स्ट्रक्चर(structure) प्रकार के लिए होना चाहिए, हमें एक विशिष्ट कार्य की कुछ स्ट्रक्चर(structure) की आवश्यकता होगी, इंजीनियर(engineer) के लिए एक फ़ंक्शन(function) प्रबंधक के लिए एक फ़ंक्शन(function) और इसी तरह।
फिर अंत में, यह सवाल आता है कि अगर हमारे पास एक संघ की एक सरणी है।
इसलिए, हमारे पास अलग-अलग रिकॉर्ड हैं, यह रिकॉर्ड एक इंजीनियर(engineer) के लिए हो सकता है, यह रिकॉर्ड प्रबंधक के लिए हो सकता है, यह इंजीनियर(engineer) के लिए हो सकता है, यह फिर से एक इंजीनियर(engineer) के लिए हो सकता है और इसी तरह, यह प्रबंधक के लिए है और इतने पर हो सकता है।
मैंने कोई भी वस्तु कैसे दी, मैं कैसे तय करूं कि सही कर्मचारी प्रकार के लिए एक सही एल्गोरिदम क्या है।
इसलिए, किसी प्रकार का एक स्विचिंग है जो इसमें शामिल है, मुझे यह जानना होगा क्योंकि सही कर्मचारी सही एल्गोरिथ्म स्ट्रक्चर(structure) विशिष्ट कार्य के प्रलोभन में एन्कोडेड है।
इसलिए, मेरे पास और यूनियन की श्रेणी में मेरे पास कर्मचारी प्रकार है।
तो, मुझे उन्हें किसी तरह से संयोजित करना है और एक स्विच बनाना है और सी आमतौर पर दो अलग-अलग विकल्प प्रदान करता है जो कि मेरे पास एक फ़ंक्शन(function) स्विच हो सकता है जो कि यदि अन्य प्रकार की स्ट्रक्चर(structure) है या मैं फ़ंक्शन(function) पॉइंटर्स के सेट का उपयोग कर सकता हूं।
तो, चलिए शुरू करते हैं और देखते हैं कि हम शुरू में एक फंक्शन(function) स्विच का उपयोग करेंगे।
तो, बस जल्दी से इसके माध्यम से चलाने के लिए मुझे उन कर्मचारियों के प्रकारों को परिभाषित करने की आवश्यकता है जो मेरे पास हैं, इंजीनियर(engineer) के लिए एर; एमजीआर।
इसलिए, मैं एक गणनीय प्रकार को परिभाषित करता हूं ये स्ट्रक्चर(structure) हैं जो परिभाषित करते हैं और इंजीनियर(engineer) प्रकार मैंने केवल नाम दिखाया था किसी भी अन्य विशेषताओं को वहां रखा जा सकता है।
हमारे पास प्रबंधक के लिए स्ट्रक्चरएं (structures) हैं जहां हमारा नाम है और मैंने वैकल्पिक रूप से यह भी रखा है कि चूंकि इंजीनियर(engineer) प्रबंधकों को रिपोर्ट करेंगे।
मुझे उन इंजीनियरों की सूची रखने की आवश्यकता होगी जो प्रबंधक को रिपोर्ट करते हैं जिन्हें हमें आरंभ करने की आवश्यकता है।
तो, एक इनिशियलाइज़ेशन फंक्शन(function) है जो निश्चित रूप से नाम लेता है और फिर उस विशेष स्ट्रक्चर(structure) ऑब्जेक्ट(object) के लिए स्पेस को मॉलोक के माध्यम से आवंटित करता है, नाम को कॉपी करके सेट करता है और रिटर्न देता है।
इसलिए, यदि मैं एक नाम के साथ init इंजीनियर(engineer) फ़ंक्शन(function) को आमंत्रित करता हूं तो यह मुझे एक इंजीनियर(engineer) को पॉइंटर(pointer) लौटाएगा जिसे मैं फिर स्टोर में रख सकता हूं।
इसी तरह, प्रबंधक के लिए मेरे पास इस तरह के init फ़ंक्शन(function) हैं।
हमारे पास इंजीनियर(engineer) के लिए अलग प्रोसेसिंग फ़ंक्शन(function) है, जो एक इंजीनियर(engineer) पॉइंटर(pointer) और मैनेजर लेता है जो एक मैनेजर पॉइंटर(pointer) लेता है और अंत में, ये संग्रह स्टोर हैं जैसा कि मैंने कहा।
इसलिए, मेरे पास एक स्ट्रक्चर(structure) है जहां एक क्षेत्र एक प्रकार है जो इनमें से एक होगा क्योंकि यह E_ TYPE है और मेरे पास दो बिंदुओं का एक संघ है।
इसलिए, किसी भी समय उनमें से कोई भी वास्तव में एक सार्थक मूल्य ले जाएगा दूसरे एक क्योंकि वे ओवरलैप होंगे क्योंकि यह एक संघ है दोनों एक ही समय में मौजूद नहीं हैं।
इसलिए, अंत में, मैं इस प्रकार को कर्मचारियों के रूप में कहता हूं।
इसलिए, यह कर्मचारियों का मेरा अंतिम संग्रह है।
इसलिए, अब इसे देखते हुए मैं निश्चित रूप से आवेदन लिखने की कोशिश कर सकता हूं।
इसलिए, स्टाफ मेरा संग्रह है।
इसलिए, मैं इस यूनियन प्रकार की एक सरणी बनाता हूं।
तो, इस पूरे स्टाफ रिकॉर्ड में 10 कर्मचारियों को रखा जा सकता है, फिर अगला, यह सिर्फ पूरे कार्यक्रम को बनाने के लिए है।
यह सिर्फ यह दिखाता है कि हम अलग-अलग इंजीनियर(engineer) और प्रबंधक कैसे बनाएंगे और उन्हें संग्रह में डालेंगे।
इसलिए, यदि हम पहले एक के बारे में सोचते हैं तो हम जो करने की कोशिश कर रहे हैं वह हमारे पास है।
तो, यह ऑलस्टाफ[0] है, यह एक प्रकार का क्षेत्र है।
इसलिए, मैंने वहां इंजीनियर(engineer) टाइप किया क्योंकि मैं एक इंजीनियर(engineer) चाहता हूं और फिर मैं init इंजीनियर(engineer) का आह्वान करता हूं और जैसा कि आपने देखा कि अगर मैं इसे इंजीनियर(engineer) के नाम से आमंत्रित करता हूं तो आप मुझे इंजीनियर(engineer) को पॉइंटर(pointer) लौटाते हैं।
इसलिए, संघ में मैं मूल रूप से एक इंजीनियर(engineer) पॉइंटर(pointer) देख रहा हूं जो सेट हो जाएगा।
इस तरह, प्रबंधक पॉइंटर(pointer) और अन्य इंजीनियर(engineer) पॉइंटर्स भी सेट हो जाते हैं, तब यह वह जगह है जहां मैं वास्तव में वास्तविक प्रसंस्करण करता हूं क्योंकि मुझे क्या करना है; मैं इस पूरे संग्रह पर जाऊंगा।
इसलिए, मुझे इस पूरे संग्रह पर जाना होगा।
यहाँ, मैंने केवल 6 संख्याओं को अनदेखा किया है, जो इस बात पर ध्यान देती है कि गिनती के द्वारा भी इसे ट्रैक किया जा सकता है।
मुझे बस यह कोडित करना है कि 6 या संभवत: यह 5 होना चाहिए था।
5 ऐसे हैं और इसलिए मैं जो करता हूं वह मुझे करना है।
इसलिए, मेरे पास इस यूनियन रिकॉर्ड का एक सरणी है।
तो, मैं 0 वें पर जाता हूं, पहले मैं टाइपफील्ड को देखता हूं।
इसलिए, क्योंकि मुझे यह जानना है कि मैं किस तरह का इंजीनियर(engineer) हूं या एक प्रबंधक।
इसलिए, आप यहां टाइप करें allstaff से [i] टाइप करें और फिर टाइप पर निर्भर करता है कि क्या टाइप Er है, मैं प्रोसेसिंग पॉवर इंजीनियरिंग फंक्शन(function) को संबंधित पॉइंटर(pointer) के साथ इनवॉइस करता हूं जो pE पॉइंटर(pointer) है, अगर नहीं तो मैं चेक करता हूं कि क्या है यह एक प्रबंधक प्रकार है तो मैं संबंधित प्रबंधक सूचक (pM) के साथ प्रक्रिया वेतन प्रबंधक फ़ंक्शन(function) को लागू करता हूं और यदि यह भी नहीं है तो कुछ त्रुटि होनी चाहिए।
इसलिए, मैं सिर्फ एक त्रुटि संदेश प्रिंट करता हूं।
अगर मैं ऐसा करता हूं तो हमारे पास ये 5 कर्मचारी हैं, 1 इंजीनियर(engineer) और 3 इंजीनियर(engineer) और 2 प्रबंधक इस विशेष आउटपुट को प्रसंस्करण के संदर्भ में प्राप्त करेंगे।
तो, यह आउटपुट के समान है जैसे कि वेतन संसाधित किया गया है।
तो, यह है कि यह कैसे लिखा जा सकता है।
इसलिए, स्वाभाविक रूप से आप देख सकते हैं कि कुछ कष्टप्रद बिंदु हैं, एक स्वयं एक यूनियन कंटेनर है, एक ऐसा तरीका है जिसे आपको इस ऑब्जेक्ट(object) को इनिशियलाइज़ करना और बनाना है और एक निश्चित रूप से यह है।
इसलिए, यदि हम अगर हम अभी आगे बढ़ते हैं और भविष्य में पहला कदम उठाने की कोशिश करते हैं, तो आप चाहते हैं कि निर्देशक प्रकार यहां जोड़ें या डिज़ाइन समान रहें।
तो, यह सब डिजाइन विवरण समान है, लेकिन केवल एक चीज हम केवल एक चीज जोड़ रहे हैं जो अब हम एक निर्देशक प्रकार जोड़ रहे हैं।
इसलिए, हम इसे जोड़ना चाहते हैं।
इसलिए, यदि हम ऐसा करते हैं तो इसका मतलब है कि मुझे निर्देशक के लिए एक स्ट्रक्चर(structure) प्रकार जोड़ना होगा।
डायरेक्टर के लिए इनिशियलाइज़र, इसमें डायरेक्टर के लिए प्रोसेसिंग रूटीन, डायरेक्टर के लिए एक कोड होना चाहिए।
उन्हें एक और क्षेत्र बनना होगा जो निर्देशक प्रकार की ओर इशारा करता है।
इसलिए, यह सब मूल रूप से प्रतिनिधित्व के संदर्भ में होगा।
फिर, यदि हम वास्तव में कोड को देखते हैं तो यह सब वहां था, तो मैं एक निर्देशक भी बना सकता हूं और इसे डाल सकता हूं, लेकिन यहां यदि आप प्रसंस्करण मार्ग में देखते हैं, तो आप देखते हैं इसके बाद आपको एक और शर्त रखनी होगी जो यह जांचेगी कि क्या कोई निदेशक है और फिर संबंधित प्रक्रिया वेतन निदेशक को डायरेक्ट के पॉइंटर(pointer) से कॉल करें।
इसलिए, यदि आप अभी देखते हैं, तो हम कुछ असहज स्थिति में आ रहे हैं क्योंकि अधिक से अधिक प्रकार के मूल डिजाइन विनिर्देश को लचीला होना चाहिए, लेकिन अधिक से अधिक हम विभिन्न प्रकार जोड़ते हैं, हम यहां एक तरफ हैं, यह स्विच विस्तार करते रहेंगे।
तो, एप्लिकेशन(application) कोड यदि मैं एक प्रकार जोड़ता हूं तो एप्लिकेशन(application) कोड को यह जानना होगा कि यह एप्लिकेशन(application) कोड मुख्य रूटीन सही है।
तो, जैसा कि एप्लिकेशन(application) कोड यह जानना है कि एक नया प्रकार जोड़ा गया है और यह कुछ कोड जोड़ने के लिए है जैसा कि वहां कुछ और स्विच जोड़ना है।
इसलिए, यह एक ऐसा ज्ञात कारक है जिसके बारे में हमें जानकारी को अलग-अलग मान के माध्यम से अलग-अलग रखना है, जो एक और परेशान करने वाला कारक है और यदि आप अभी देखते हैं कि क्या आप पहले वाले को देखते हैं, तो हम बहुत सारे दोहराव पैदा कर रहे हैं, उदाहरण के लिए , यहां हमें एक संघ आधारित संग्रह करना है, जो काफी बोझिल भी है क्योंकि यह गारंटी नहीं है कि मैं जिस प्रकार के और विशेष क्षेत्र में रहता हूं, वह मूल्य संघ द्वारा पढ़े गए तरीके से नहीं है।
इसलिए, हम हमेशा इसमें गलतियां कर सकते हैं और हम बहुत सारे मुद्दों को देखते हैं क्योंकि इस नाम को देखते हैं कि क्या आप इस टाइपराइफ को निर्देशक में देखते हैं।
ये सभी भाग मूल रूप से कोड हैं जिन्हें आप बार-बार जानते हैं और यदि आप इन कोडों को इन सभी कोडों में नाम और उन सभी की प्रतिलिपि देखते हैं जो स्ट्रक्चर(structure) में बहुत समान हैं, लेकिन फिर भी हम सिर्फ कॉपी करने वाले हैं और आप पेस्ट जानते हैं और संpaदित करते हैं उस में और कोड के रखरखाव और विस्तार के संदर्भ में बहुत से संभावित मुद्दों का निर्माण।
इसलिए, सी का उपयोग करके हम एक समाधान प्राप्त करने में सक्षम हैं जो हम जीवित रह सकते हैं, लेकिन हमें इस समस्या के लिए बेहतर समाधान की आवश्यकता है, जिसे हम अगले मॉड्यूल(module) में चर्चा करेंगे।
इसलिए, यहाँ संक्षेप में कहें कि हमने एक बाइंडिंग(binding) अभ्यास का अभ्यास किया है और हमने एक कर्मचारी के वेतन आवेदन के लिए डिज़ाइन करना शुरू कर दिया है, जहाँ हमने अभी C समाधान किया है और देखा है कि उस समाधान में क्या कठिनाइयाँ हैं।
फिर आप सी ++ में जाते हैं और इसमें हमने समाधान के तीन चरण दिखाए हैं - पहला, गैर-पॉलीमोर्फिक(polymorphic) पदानुक्रम(hierarchy) के साथ; फिर, पॉलीमोर्फिक(polymorphic) पदानुक्रम(hierarchy) के साथ; और फिर सार आधार क्लास(class) के साथ एक बहुरंगी पदानुक्रम(hierarchy) के साथ।
फिर आप सी ++ में जाते हैं और इसमें हमने समाधान के तीन चरण दिखाए हैं - पहला, गैर-पॉलीमोर्फिक(polymorphic) पदानुक्रम(hierarchy) के साथ; फिर, पॉलीमोर्फिक(polymorphic) पदानुक्रम(hierarchy) के साथ; और फिर सार आधार क्लास(class) के साथ एक बहुरंगी पदानुक्रम(hierarchy) के साथ।
और मुझे आशा है कि भविष्य में और अधिक डिजाइन(design) करने में सक्षम होने के मामले में आपको बहुत ताकत मिलेगी।
और मुझे आशा है कि भविष्य में और अधिक डिजाइन(design) करने में सक्षम होने के मामले में आपको बहुत ताकत मिलेगी।
अगले मॉड्यूल(module) और दो में हम उन सभी पर एक संक्षिप्त नज़र डालेंगे जो हम पॉलीमॉर्फिज्म(Polymorphism) के संदर्भ में कह रहे हैं कि डायनामिक(Dynamic) बाइंडिंग(binding), यह वास्तव में कैसे काम करता है, और फिर C ++ की अन्य विशेषताओं के साथ जारी रहता है।
अगले मॉड्यूल(module) और दो में हम उन सभी पर एक संक्षिप्त नज़र डालेंगे जो हम पॉलीमॉर्फिज्म(Polymorphism) के संदर्भ में कह रहे हैं कि डायनामिक(Dynamic) बाइंडिंग(binding), यह वास्तव में कैसे काम करता है, और फिर C ++ की अन्य विशेषताओं के साथ जारी रहता है।
@@ -205,4 +205,3 @@ C++ में प्रोग्रामिंग के मॉड्यूल(
...
@@ -205,4 +205,3 @@ C++ में प्रोग्रामिंग के मॉड्यूल(
इसलिए, निष्कर्ष निकालने के लिए, हमने इस बात पर चर्चा की है कि विध्वंसक(destructor) वर्चुअल(virtual) क्यों होना चाहिए।
इसलिए, निष्कर्ष निकालने के लिए, हमने इस बात पर चर्चा की है कि विध्वंसक(destructor) वर्चुअल(virtual) क्यों होना चाहिए।
और बहुरंगी पदानुक्रम(hierarchy) पर काम करने में सक्षम होने के लिए, हमने शुद्ध वर्चुअल(virtual) कार्यों को शुरू किया है और एब्स्ट्राक्ट(abstract) आधार क्लास(class) की धारणा पेश की है।
और बहुरंगी पदानुक्रम(hierarchy) पर काम करने में सक्षम होने के लिए, हमने शुद्ध वर्चुअल(virtual) कार्यों को शुरू किया है और एब्स्ट्राक्ट(abstract) आधार क्लास(class) की धारणा पेश की है।
अगले मॉड्यूल(module) में, हम यह दिखाने के लिए अधिक उदाहरण लेंगे कि इन उपकरणों का उपयोग वास्तव में क्लास(class) पदानुक्रम(hierarchy) पर कुछ निश्चित डिज़ाइन और कोड प्रसंस्करण करने के लिए कैसे किया जा सकता है।
अगले मॉड्यूल(module) में, हम यह दिखाने के लिए अधिक उदाहरण लेंगे कि इन उपकरणों का उपयोग वास्तव में क्लास(class) पदानुक्रम(hierarchy) पर कुछ निश्चित डिज़ाइन और कोड प्रसंस्करण करने के लिए कैसे किया जा सकता है।
हमने ऐसा इसलिए किया है क्योंकि अगले मॉड्यूल(module) में, हमें बिंडिंग(binding) के संदर्भ में कास्टिंग(casting) की इस धारणा का उपयोग करने की आवश्यकता होगी।
हमने ऐसा इसलिए किया है क्योंकि अगले मॉड्यूल(module) में, हमें बिंडिंग(binding) के संदर्भ में कास्टिंग(casting) की इस धारणा का उपयोग करने की आवश्यकता होगी।
उसके बाद हमने स्थैतिक(static) कास्टिंग(casting) और डायनामिक(Dynamic) कास्टिंग(casting) या वर्चुअल फ़ंक्शन(function) की मूल परिभाषा को प्रस्तुत किया है जो एक नए प्रकार का सदस्य कार्य है जिसे हम आगे की कक्षाओं में पेश कर रहे हैं।
उसके बाद हमने स्थैतिक(static) कास्टिंग(casting) और डायनामिक(Dynamic) कास्टिंग(casting) या वर्चुअल फ़ंक्शन(function) की मूल परिभाषा को प्रस्तुत किया है जो एक नए प्रकार का सदस्य कार्य है जिसे हम आगे की कक्षाओं में पेश कर रहे हैं।
हम अगले मॉड्यूल(module) में गतिशील(dynamic) बिंडिंग(binding) पर चर्चा जारी रखेंगे।
हम अगले मॉड्यूल(module) में गतिशील(dynamic) बिंडिंग(binding) पर चर्चा जारी रखेंगे।
और हमने अलग-अलग नए ऑपरेटरों और उनके संबंधित डिलीट(delete) ऑपरेटरों और उनके द्वारा सीखे गए एक मूल सिद्धांत के बीच के अंतरों को ध्यान से समझा है, हम जो भी आवंटित(allocate) या फ़ंक्शन करते हैं, जो आवंटित(allocate) हम करते हैं उसका उपयोग हम संबंधित डी-आवंटित(allocate) फ़ंक्शन या ऑपरेटर(operator) का उपयोग करते हैं - नि: शुल्क के साथ मॉलॉक, ऑपरेटर(operator) हटाने के साथ ऑपरेटर(operator) नया, ऑपरेटर(operator) सरणी(array) हटाने के साथ ऑपरेटर(operator) नया और अगर मैंने प्लेसमेंट नया किया है, तो आपके पास कोई डिलीट(delete) नहीं होना चाहिए, और अन्यथा हमें पूरी तरह से अप्रत्याशित समस्याएं होने की संभावना है।
और हमने अलग-अलग नए ऑपरेटरों और उनके संबंधित डिलीट(delete) ऑपरेटरों और उनके द्वारा सीखे गए एक मूल सिद्धांत के बीच के अंतरों को ध्यान से समझा है, हम जो भी आवंटित(allocate) या फ़ंक्शन करते हैं, जो आवंटित(allocate) हम करते हैं उसका उपयोग हम संबंधित डी-आवंटित(allocate) फ़ंक्शन या ऑपरेटर(operator) का उपयोग करते हैं - नि: शुल्क के साथ मॉलॉक, ऑपरेटर(operator) हटाने के साथ ऑपरेटर(operator) नया, ऑपरेटर(operator) सरणी(array) हटाने के साथ ऑपरेटर(operator) नया और अगर मैंने प्लेसमेंट नया किया है, तो आपके पास कोई डिलीट(delete) नहीं होना चाहिए, और अन्यथा हमें पूरी तरह से अप्रत्याशित समस्याएं होने की संभावना है।
हमने अंत में यह भी देखा है कि इन नए ऑपरेटरों को कैसे ओवरलोड(overload) किया जाए और ऑपरेटरों को हटा दिया जाए, जो अब ऑपरेटर(operator) के रूप में होने का फायदा है।
हमने अंत में यह भी देखा है कि इन नए ऑपरेटरों को कैसे ओवरलोड(overload) किया जाए और ऑपरेटरों को हटा दिया जाए, जो अब ऑपरेटर(operator) के रूप में होने का फायदा है।
और हमने दिखाया है कि इन ऑपरेटरों को ओवरलोड(overload) करके उपयोगकर्ता द्वारा वांछित रूप से विभिन्न कार्यक्षमता को कैसे रखा जा सकता है।
और हमने दिखाया है कि इन ऑपरेटरों को ओवरलोड(overload) करके उपयोगकर्ता द्वारा वांछित रूप से विभिन्न कार्यक्षमता को कैसे रखा जा सकता है।
@@ -154,4 +154,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
...
@@ -154,4 +154,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
तो, इस तरह के नए के लिए, यहां प्लेसमेंट नया या यहां नए प्लेसमेंट के लिए, आपके पास एक समान डिलीट नहीं है; अन्यथा, आप प्रारंभिक उदाहरण से शुरू होने वाले बाकी उदाहरणों के माध्यम से जा सकते हैं या अन्य बिंदुओं के संदर्भ में उपयोग कर सकते हैं।
तो, इस तरह के नए के लिए, यहां प्लेसमेंट नया या यहां नए प्लेसमेंट के लिए, आपके पास एक समान डिलीट नहीं है; अन्यथा, आप प्रारंभिक उदाहरण से शुरू होने वाले बाकी उदाहरणों के माध्यम से जा सकते हैं या अन्य बिंदुओं के संदर्भ में उपयोग कर सकते हैं।
यदि आप इस कोड से गुजरते हैं, तो यह पॉइंटर(pointer) ट्विकिंग का थोड़ा सा हिस्सा है, और यह आदी होने के लिए अच्छा होगा कि आप समझ जाएंगे कि यह बाकी किसी भी अन्य पॉइंटर(pointer) हेरफेर की तरह है।
यदि आप इस कोड से गुजरते हैं, तो यह पॉइंटर(pointer) ट्विकिंग का थोड़ा सा हिस्सा है, और यह आदी होने के लिए अच्छा होगा कि आप समझ जाएंगे कि यह बाकी किसी भी अन्य पॉइंटर(pointer) हेरफेर की तरह है।
लेकिन फर्क सिर्फ इतना है कि पते डायनेमिक स्टोर से नहीं आ रहे हैं, फ्री(free) स्टोर से नहीं आ रहे हैं, पते उस बफर(buffer) से आ रहे हैं जो मैंने प्रदान किया है।
लेकिन फर्क सिर्फ इतना है कि पते डायनेमिक स्टोर से नहीं आ रहे हैं, फ्री(free) स्टोर से नहीं आ रहे हैं, पते उस बफर(buffer) से आ रहे हैं जो मैंने प्रदान किया है।
@@ -185,4 +185,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
...
@@ -185,4 +185,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
संक्षेप में, हमने अपवादों, प्रकारों और चरणों की मूल अवधारणा की अवधारणा को पेश किया है और सी में त्रुटि से निपटने पर चर्चा की है।
संक्षेप में, हमने अपवादों, प्रकारों और चरणों की मूल अवधारणा की अवधारणा को पेश किया है और सी में त्रुटि से निपटने पर चर्चा की है।
हमने विभिन्न भाषा विशेषताओं का सचित्र वर्णन किया है और वास्तव में उनमें से कई नहीं हैं, और पुस्तकालय समर्थन जो इसके लिए C में मौजूद है, और हम इसे उदाहरणों के साथ प्रदर्शित करते हैं।
हमने विभिन्न भाषा विशेषताओं का सचित्र वर्णन किया है और वास्तव में उनमें से कई नहीं हैं, और पुस्तकालय समर्थन जो इसके लिए C में मौजूद है, और हम इसे उदाहरणों के साथ प्रदर्शित करते हैं।
अगले मॉड्यूल(module) में, हम C ++ में अपवादों के मूल में पहुंचेंगे।
अगले मॉड्यूल(module) में, हम C ++ में अपवादों के मूल में पहुंचेंगे।
@@ -185,4 +185,3 @@ C - ++ में प्रोग्रामिंग के मॉड्यू
...
@@ -185,4 +185,3 @@ C - ++ में प्रोग्रामिंग के मॉड्यू
वास्तव में यदि आप C ++ में थ्रो थ्रो के साथ ठीक से डिज़ाइन करना जारी रख सकते हैं, तो आपको सी में किसी भी अपवाद(exception) तंत्र की आवश्यकता नहीं होगी।
वास्तव में यदि आप C ++ में थ्रो थ्रो के साथ ठीक से डिज़ाइन करना जारी रख सकते हैं, तो आपको सी में किसी भी अपवाद(exception) तंत्र की आवश्यकता नहीं होगी।
बेशक आपको अभी भी उनका उपयोग करने की आवश्यकता होगी, क्योंकि कुछ सिस्टम कॉल उन त्रुटि तंत्रों का उपयोग करते हैं, जैसे सिग्नल या त्रुटि संख्या डाल रहा है।
बेशक आपको अभी भी उनका उपयोग करने की आवश्यकता होगी, क्योंकि कुछ सिस्टम कॉल उन त्रुटि तंत्रों का उपयोग करते हैं, जैसे सिग्नल या त्रुटि संख्या डाल रहा है।
तो आपको अभी भी उन मामलों के लिए उपयोग करने की आवश्यकता होगी, लेकिन अपने स्वयं के कोड के लिए आपको कभी भी सी त्रुटि हैंडलिंग(handling) या सी लाइब्रेरी लाइब्रेरी फ़ंक्शंस का उपयोग करने की आवश्यकता नहीं होगी।
तो आपको अभी भी उन मामलों के लिए उपयोग करने की आवश्यकता होगी, लेकिन अपने स्वयं के कोड के लिए आपको कभी भी सी त्रुटि हैंडलिंग(handling) या सी लाइब्रेरी लाइब्रेरी फ़ंक्शंस का उपयोग करने की आवश्यकता नहीं होगी।
हमने अन्य विशेषताओं के बारे में भी बात की है जो मित्र कार्यों के संदर्भ में, स्टातिक(static) फ़ंक्शंस और इसी तरह के कार्यों के लिए विस्तार या अपवाद की विविधता से संबंधित हैं, और हमने देखा है कि विभिन्न सदस्य कार्यों और वैश्विक कार्यों का ओवरलोडिंग(overloading) कैसे होता है हो सकता है।
हमने अन्य विशेषताओं के बारे में भी बात की है जो मित्र कार्यों के संदर्भ में, स्टातिक(static) फ़ंक्शंस और इसी तरह के कार्यों के लिए विस्तार या अपवाद की विविधता से संबंधित हैं, और हमने देखा है कि विभिन्न सदस्य कार्यों और वैश्विक कार्यों का ओवरलोडिंग(overloading) कैसे होता है हो सकता है।
अब, इनहेरिटेंस(Inheritance) एक विषय है जो वस्तु आधारित प्रणालियों के डिजाइन की मुख्य रीढ़ बनाने में इन सभी समझ को जोड़ देगा।
अब, इनहेरिटेंस(Inheritance) एक विषय है जो वस्तु आधारित प्रणालियों के डिजाइन की मुख्य रीढ़ बनाने में इन सभी समझ को जोड़ देगा।
इसलिए, इससे पहले कि हम गहराई से इसका अध्ययन करना शुरू करें, मैं आप सभी से आग्रह करूंगा कि आप C ++ की विभिन्न विशेषताओं के बारे में संशोधित करें और उन पर पूरी तरह से चर्चा करें, क्योंकि हम अब तक उन सभी का जिक्र करेंगे, जो अब बहुत नियमित रूप से एक साथ हैं।
इसलिए, इससे पहले कि हम गहराई से इसका अध्ययन करना शुरू करें, मैं आप सभी से आग्रह करूंगा कि आप C ++ की विभिन्न विशेषताओं के बारे में संशोधित करें और उन पर पूरी तरह से चर्चा करें, क्योंकि हम अब तक उन सभी का जिक्र करेंगे, जो अब बहुत नियमित रूप से एक साथ हैं।
।
अब, इनहेरिटेंस(Inheritance) पर चर्चा करने के लिए जैसा कि मैंने पहले ही उल्लेख किया है कि यह कई मॉड्यूलों पर होगा।
अब, इनहेरिटेंस(Inheritance) पर चर्चा करने के लिए जैसा कि मैंने पहले ही उल्लेख किया है कि यह कई मॉड्यूलों पर होगा।
इस विशेष मॉड्यूल(module) में, हम आईएसए(ISA) रिलेशनशिप या ऑब्जेक्ट(object) ओरिएंटेड(oriented) विश्लेषण और डिज़ाइन के पदानुक्रम को फिर से देखने की कोशिश करेंगे और देखेंगे कि कैसे C ++ विरासत के संदर्भ में बनाया जा सकता है।
इस विशेष मॉड्यूल(module) में, हम आईएसए(ISA) रिलेशनशिप या ऑब्जेक्ट(object) ओरिएंटेड(oriented) विश्लेषण और डिज़ाइन के पदानुक्रम को फिर से देखने की कोशिश करेंगे और देखेंगे कि कैसे C ++ विरासत के संदर्भ में बनाया जा सकता है।
मैं यहाँ जो रूपरेखा प्रस्तुत करता हूँ वह थोड़ा अलग ढंग से आयोजित की जाती है।
मैं यहाँ जो रूपरेखा प्रस्तुत करता हूँ वह थोड़ा अलग ढंग से आयोजित की जाती है।
...
@@ -115,4 +114,3 @@
...
@@ -115,4 +114,3 @@
इसलिए, यह सभी प्रमुख शब्दार्थों का एक सिरा है, जिसे हमें समझने के संदर्भ में समझने की आवश्यकता है कि विरासत का उपयोग कैसे करें और सी ++ भाषा में बहुत ही कुशल तरीके से पदानुक्रम के विभिन्न वास्तविक विश्व परिदृश्य को कैसे मॉडल करें।
इसलिए, यह सभी प्रमुख शब्दार्थों का एक सिरा है, जिसे हमें समझने के संदर्भ में समझने की आवश्यकता है कि विरासत का उपयोग कैसे करें और सी ++ भाषा में बहुत ही कुशल तरीके से पदानुक्रम के विभिन्न वास्तविक विश्व परिदृश्य को कैसे मॉडल करें।
इसलिए संक्षेप में, हमारे पास आईएसए(ISA) संबंध की ओओएडी(OOAD) पदानुक्रम अवधारणा और वस्तु उन्मुख विश्लेषण और डिजाइन की श्रेणी पदानुक्रम अवधारणा का पुनर्मुद्रण है, और हमने सी++ में विरासत की मूल धारणा पेश की है।
इसलिए संक्षेप में, हमारे पास आईएसए(ISA) संबंध की ओओएडी(OOAD) पदानुक्रम अवधारणा और वस्तु उन्मुख विश्लेषण और डिजाइन की श्रेणी पदानुक्रम अवधारणा का पुनर्मुद्रण है, और हमने सी++ में विरासत की मूल धारणा पेश की है।
और ध्यान दिया कि शब्दार्थ के विभिन्न पहलू क्या हैं जिन्हें हमें समझने की आवश्यकता है, कि हमें वास्तव में मास्टर होने की आवश्यकता है ताकि हम विरासत का प्रभावी तरीके से उपयोग कर सकें।
और ध्यान दिया कि शब्दार्थ के विभिन्न पहलू क्या हैं जिन्हें हमें समझने की आवश्यकता है, कि हमें वास्तव में मास्टर होने की आवश्यकता है ताकि हम विरासत का प्रभावी तरीके से उपयोग कर सकें।
@@ -119,4 +119,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
...
@@ -119,4 +119,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
इसकी गारंटी नहीं है कि बेस क्लास ऑब्जेक्ट(object) निचले पते पर आएगा और व्युत्पन्न क्लास(class) के डेटा सदस्य उच्च पते पर होंगे या इसके विपरीत या कुछ अन्य मिश्रण किया जाएगा।
इसकी गारंटी नहीं है कि बेस क्लास ऑब्जेक्ट(object) निचले पते पर आएगा और व्युत्पन्न क्लास(class) के डेटा सदस्य उच्च पते पर होंगे या इसके विपरीत या कुछ अन्य मिश्रण किया जाएगा।
और हमने यह भी देखा है कि इनहेरिटेंस(Inheritance) के संदर्भ में, सदस्य कार्यों को एक आधार क्लास(class) से व्युत्पन्न क्लास(class) में इनहेरिटेंस(Inheritance) में मिला है, लेकिन इनहेरिटेंस(Inheritance) के बाद बहुत दिलचस्प रूप से सदस्य कार्यों को ओवरराइड(override) किया जा सकता है।
और हमने यह भी देखा है कि इनहेरिटेंस(Inheritance) के संदर्भ में, सदस्य कार्यों को एक आधार क्लास(class) से व्युत्पन्न क्लास(class) में इनहेरिटेंस(Inheritance) में मिला है, लेकिन इनहेरिटेंस(Inheritance) के बाद बहुत दिलचस्प रूप से सदस्य कार्यों को ओवरराइड(override) किया जा सकता है।
और उस संदर्भ में, ओवरलोडिंग(overloading) के मूल नियम भी काम करना जारी रखेंगे।
और उस संदर्भ में, ओवरलोडिंग(overloading) के मूल नियम भी काम करना जारी रखेंगे।
@@ -148,4 +148,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
...
@@ -148,4 +148,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
इसलिए, जहां आप वास्तव में वीडियो कॉल कर सकते हैं और फिर आपके पास स्मार्ट फोन(smart phone) हैं जो हमने देखे गए मोबाइल फोन(mobile phone) के विशेषीकरण के रूप में हैं, लेकिन वे फिर से विशिष्ट हैं कि क्या वे आई-फोन या एंड्रॉइड फोन हैं या मुझे किसी तरह का टैबलेट मिल सकता है फोन जो स्मार्ट फोन(smart phone) के साथ-साथ वीडियो फोन आदि के रूप में इस्तेमाल किया जा सकता है।
इसलिए, जहां आप वास्तव में वीडियो कॉल कर सकते हैं और फिर आपके पास स्मार्ट फोन(smart phone) हैं जो हमने देखे गए मोबाइल फोन(mobile phone) के विशेषीकरण के रूप में हैं, लेकिन वे फिर से विशिष्ट हैं कि क्या वे आई-फोन या एंड्रॉइड फोन हैं या मुझे किसी तरह का टैबलेट मिल सकता है फोन जो स्मार्ट फोन(smart phone) के साथ-साथ वीडियो फोन आदि के रूप में इस्तेमाल किया जा सकता है।
इसलिए, मैं सिर्फ सुझाव देता हूं कि इन पदानुक्रम(hieracrchy) के आधार पर हम घर पर प्रयास कर सकते हैं और C ++ वंशानुक्रम वर्गों(classes) के समान सेट का निर्माण करने की कोशिश कर सकते हैं जो इस पदानुक्रम(hieracrchy) का प्रतिनिधित्व कर सकते हैं।
इसलिए, मैं सिर्फ सुझाव देता हूं कि इन पदानुक्रम(hieracrchy) के आधार पर हम घर पर प्रयास कर सकते हैं और C ++ वंशानुक्रम वर्गों(classes) के समान सेट का निर्माण करने की कोशिश कर सकते हैं जो इस पदानुक्रम(hieracrchy) का प्रतिनिधित्व कर सकते हैं।
इसलिए, संक्षेप में हम इसका उपयोग कर सकते हैं फोन पदानुक्रम(hieracrchy) यहाँ दिखाने के लिए, कैसे एक वास्तविक स्थितियों के लिए प्रभावी C ++ कोड(code) मॉडल बनाने के लिए इनहेरिटेंस(Inheritance) का उपयोग किया जा सकता है।
इसलिए, संक्षेप में हम इसका उपयोग कर सकते हैं फोन पदानुक्रम(hieracrchy) यहाँ दिखाने के लिए, कैसे एक वास्तविक स्थितियों के लिए प्रभावी C ++ कोड(code) मॉडल बनाने के लिए इनहेरिटेंस(Inheritance) का उपयोग किया जा सकता है।
हम इनहेरिटेंस(Inheritance) पर चर्चा कर रहे हैं और सी ++ में आईएसए(ISA) पदानुक्रम(hierarchy) के लिए सामान्यीकरण विशेषज्ञता या इनहेरिटेंस(Inheritance) के लिए इनहेरिटेंस(Inheritance) की सभी प्रमुख विशेषताओं की शुरुआत के साथ, हमने उन सभी विशेषताओं को पेश किया है जो वे शब्दार्थ हैं।
और पिछले मॉड्यूल में, हमने विभिन्न प्रकार के फोन, फोन की पदानुक्रम(hierarchy) का उदाहरण लिया; और सचित्र कि कैसे हम वास्तव में एक पदानुक्रम(hierarchy) का एहसास करने के लिए डेटा सदस्यों(data members) और सदस्य कार्यों(member functions) के साथ कक्षाओं का एक सेट डिजाइन करना शुरू कर सकते हैं।
अब इस संदर्भ में, इनहेरिटेंस(Inheritance) पर चर्चा की इस मूल श्रृंखला में, यह अंतिम मॉड्यूल होगा जहां हम इनहेरिटेंस(Inheritance) के कुछ और प्रतिबंधित रूप का पता लगाते हैं जो C ++ की पेशकश करते हैं।
वे खुद को अलग करते हैं, वास्तव में दो प्रकार के होते हैं निजी और संरक्षित।
वे खुद को उस इनहेरिटेंस(Inheritance) से अलग करते हैं, जिस पर हमने पहले चर्चा की है, क्योंकि उन्हें C ++ में इनहेरिटेंस(Inheritance) नहीं कहा जाता है, लेकिन वे वस्तु उन्मुख अर्थ के सामान्यीकरण विशेषज्ञता पदानुक्रम(hierarchy) का प्रतिनिधित्व नहीं करते हैं।
तो, वे वास्तव में मॉडलिंग या इंटरफ़ेस(interface) या डिज़ाइन(design) चरण में कार्यान्वयन के लिए अधिक उपयोग किए जाते हैं।
इसलिए, इस रूपरेखा के संदर्भ में, हम इस तरह के प्रतिबंधित इनहेरिटेंस(Inheritance) की चर्चा में हैं।
तो, यह मूल इनहेरिटेंस(Inheritance) शब्दार्थ है जिसे हमने देखा है और मैं इस सार्वजनिक खोजशब्द पर आपका ध्यान आकर्षित करना चाहूंगा जो C ++ वर्ग(class) में विरासत के संदर्भ में विशिष्ट OOAD ISA संबंध को परिभाषित करता है।
तो, बस पुनरावृत्ति के लिए।
अगर मेरे पास कक्षाओं का एक सेट है और हम जानना चाहते हैं कि इन वर्गों(classes) की वस्तुओं या वस्तुओं का निर्माण कैसे होगा।
तो, यदि आपने ऐसी स्थिति दी है, तो आपके पास वर्ग(class) बी है, आपके पास कक्षा(class) सी है, आपके पास कक्षा(class) डी है, जो कक्षा(class) बी का एक विशेषज्ञता है, और फिर आप कक्षा(class) डी की वस्तु का निर्माण कर रहे हैं।
प्रश्न यह है कि क्या है जिस क्रम में कॉउट होता है, जो आपको बताएगा कि डी ऑब्जेक्ट(object) का जीवन चक्र या जीवनकाल और इसमें अन्य एम्बेडेड ऑब्जेक्ट्स क्या हैं।
इसलिए, जब भी आप ऐसी स्थितियों का सामना करते हैं, तो आपको रिश्तों के मूल चित्र को आकर्षित करने का प्रयास करना चाहिए।
तो, यहाँ हम जानते हैं कि एक बी और सी एक स्वतंत्र वर्ग(class) है।
तो, यह कक्षाओं का मूल संबंध है।
डी ऑब्जेक्ट(object) के संदर्भ में हम क्या उम्मीद करते हैं, इसलिए यह डी ऑब्जेक्ट(object) है; इसके संदर्भ में, हमारे पास एक सी डेटा है और यह बी से इनहेरिटेंस(Inheritance) में मिला है।
चूंकि यह बी से इनहेरिटेंस(Inheritance) में मिला है, इसलिए इसमें टाइप बी का आधार वर्ग(class) उदाहरण होगा; और एक सदस्य के रूप में, यह एक सी श्रेणी की वस्तु होगी।
तो, यह लेआउट का एक बुनियादी ढांचा क्या है।
इसलिए, एक बार जब आप इसे आकर्षित करने में सक्षम हो जाते हैं, तो आप आसानी से यह पता लगाने में सक्षम होंगे कि जब मैं किसी वस्तु को पलटने की कोशिश करता हूं तो क्या होता है।
निश्चित रूप से वस्तु की तात्कालिकता, हम डी के निर्माता को आमंत्रित करके शुरू करेंगे।
और फिर पहली चीज क्या है जिसे डी आईएसए(ISA) बी करने की आवश्यकता है, इसलिए उस के आधार वर्ग(class) उदाहरण का निर्माण करना होगा।
तो, इसका मतलब यह है कि पहली बात जिसे यह इंटर्न बुलाएगा वह बी का कंस्ट्रक्टर(constructor) है और एक बार बी के एक कंस्ट्रक्टर(constructor) को कहा जाता है जिसे निष्पादित किया जाता है।
इसलिए, आउटपुट(output) में, अगर मैं यहाँ आउटपुट(output) में लिखता हूँ, तो आपको बी का आउटपुट(output) दिखाई देता है।
एक बार इस बेस क्लास के उदाहरण का निर्माण हो गया, तो अगली बात यह है कि एक-एक करके डेटा सदस्यों(data members) का निर्माण किया जाए, इसलिए एक डेटा है सदस्य।
अब इसके लिए निर्माण कराना होगा।
तो, इसके बाद D, C के कंस्ट्रक्टर(constructor) को अगली कॉल देगा, क्योंकि इस data_ सदस्य का निर्माण करना होगा।
इसलिए, क्योंकि यह C के कंस्ट्रक्टर(constructor) को कॉल करता है, उसका आउटपुट(output) C होगा।
अब एक बार ऐसा हो जाने के बाद, बेस पार्ट इंस्टेंस बनाया गया है, डेटा सदस्य बनाया गया है, अब D का वास्तविक कंस्ट्रक्टर(constructor) निष्पादित करेगा, इसलिए आपके पास एक आउटपुट(output) डी होगा।
इसलिए, इन सभी के बाद आप अब इस स्थिति में हैं जहां आपकी पूरी डी ऑब्जेक्ट(object) का निर्माण किया गया है।
बाद के समय में, जब आप दायरे के अंत तक पहुँचते हैं, तो स्वाभाविक रूप से इसे नष्ट होना होगा।
तो, अगर इसे नष्ट करना पड़ता है, तो पहले कहा जाता है, इसलिए यह वही है जो आप वास्तव में नहीं देख सकते हैं कि संकलक ने यहां अदृश्य रूप से क्या रखा है।
डी।
के विध्वंसक के लिए एक कॉल है।
इस बिंदु पर, आपको कॉल करना होगा डी।
का नाश करने वाला और जैसा कि मैंने कहा कि विनाश का क्रम ठीक विपरीत है।
तो, डी के विनाश के लिए जो भी कार्रवाई की आवश्यकता होती है उसे पहले लिया जाएगा।
तो, हमारे पास सबसे पहले ~ D का आउटपुट(output) होगा।
जब आप इस के अंत तक पहुँचते हैं, तो सी डेटा सदस्य होने से ठीक पहले इसका निर्माण किया गया था।
तो, यह सी के विनाशकर्ता की कॉल को बढ़ावा देगा, जो आपके द्वारा देखे जाने वाले आउटपुट(output) में सी को नष्ट कर देगा।
और इस दायरे के अंत में, यह समाप्त हो गया है।
तो, यह फिर से यहाँ वापस आता है और अब आपको डी ऑब्जेक्ट(object) के बेस पार्ट इंस्टेंस को नष्ट करना होगा।
तो, आप फिर से अगले को कहते हैं जो बेस क्लास का डिस्ट्रक्टर है जो बी प्रिंट करेगा और फिर फ़ंक्शन(function) वास्तव में समाप्त हो जाएगा।
इसलिए, यदि आपके पास अलग-अलग पदानुक्रम(hierarchy) हैं, तो कंस्ट्रक्टर(constructor) विध्वंसक में बस अलग-अलग प्रिंट संदेशों को डालने के लिए यह एक अच्छा व्यायाम है और उन पर भरोसा करें कि यह समझने में सक्षम हो कि वास्तव में, वास्तव में क्या होता है।
इसलिए, यह सिर्फ एक तरह का पुनरावृत्ति था, जो हमने किया था।
इसलिए, मैंने अभी एक और उदाहरण दिया है, ताकि आप इसे बेहतर तरीके से समझ सकें।
अगली स्लाइड में, वास्तव में मेरे पास चूंकि मैं बाहर काम करना चाहता था।
इसलिए, मैं आउटपुट(output) पहले स्लाइड में नहीं दिया गया था, अब इसे यहां दिया गया है।
इसलिए, आप बाद के समय में अभ्यास कर सकते हैं।
अब निजी तौर पर आने वाले इनहेरिटेंस(Inheritance) के प्रतिबंधित रूप मुझे पहले निजी इनहेरिटेंस(Inheritance) के बारे में चर्चा करने दें।
निजी इनहेरिटेंस(Inheritance) बहुत हद तक इनहेरिटेंस(Inheritance) की तरह दिखती है जिसे हमने देखा है जो इसके विपरीत कहेगा सार्वजनिक इनहेरिटेंस(Inheritance) या सिर्फ इनहेरिटेंस(Inheritance) है।
केवल एक चीज अलग है वह महत्वपूर्ण शब्द जिसका हम उपयोग करते हैं, आपने कहा कि यह निजी उत्तराधिकार है इसलिए आप कीवर्ड निजी लिखते हैं।
और निजी इनहेरिटेंस(Inheritance) जैसा कि हम समझते हैं कि डिजाइन में पदानुक्रम(hierarchy) का प्रतिनिधित्व करने के लिए नहीं है, बल्कि इसका उपयोग इस तरह के कहने के लिए किया जाता है कि ऑब्जेक्ट(object) का कुछ हिस्सा किसी अन्य बेस क्लास ऑब्जेक्ट(object) के रूप में लागू किया जाता है।
इसलिए, यह रचना के लिए एक प्रकार के उम्मीदवार के विकल्प की तरह है, जो कुछ को बाद में इस चर्चा में इस प्रस्तुति में देखेंगे और इसे आईएसए(ISA) के मूल पदानुक्रम(hierarchy) के साथ भ्रमित नहीं होना है कि हम सार्वजनिक इनहेरिटेंस(Inheritance) के लिए मॉडलिंग कर रहे हैं।
इसलिए, यही कारण है कि बहुत प्रसिद्ध लेखकों की टिप्पणियों में से एक है कि निजी इनहेरिटेंस(Inheritance) का मतलब सॉफ्टवेयर डिजाइन के दौरान कुछ भी नहीं है, क्योंकि डिजाइन के समय के दौरान आप बस आईएसए(ISA) पदानुक्रम(hierarchy) जानते हैं कि क्या आप कार्यान्वयन के आंतरिक नहीं जानते हैं।
इसलिए, केवल जब आपको पता चलता है कि आप पर लागू होने के इंटर्नल्स उस पर काम कर रहे हैं, तो आप इस निजी इनहेरिटेंस(Inheritance) प्रकार के शब्दार्थ को देखते हैं।
इसलिए, अगर हम सार्वजनिक और निजी इनहेरिटेंस(Inheritance) के बीच तुलना करने की कोशिश करते हैं, तो मैं सिर्फ एक साधारण उदाहरण का उपयोग कर रहा हूं, यह स्कॉट मेयर(Scott Meyer) की किताब से फिर से है।
मेरे पास एक बेस क्लास व्यक्ति है, मेरे पास एक व्युत्पन्न क्लास स्टूडेंट(student) है।
और निश्चित रूप से मेरे दो अलग-अलग कार्य हैं ईट()(eat) और अध्ययन()(study)।
निश्चित रूप से खाने के लिए व्यक्तियों पर लागू होता है, क्योंकि हर किसी को खाने की जरूरत होती है; और अध्ययन(study) केवल छात्रों पर लागू होता है क्योंकि जो लोग अध्ययन(study) करते हैं उन्हें छात्र सही कहा जाता है।
तो, ऐसे व्यक्ति हो सकते हैं जो अध्ययन(study) नहीं करते हैं।
इसलिए, यदि P एक व्यक्ति है और S एक छात्र है तो खा पी पर काम करेगा, दिलचस्प रूप से यह S पर भी काम करेगा और यह सार्वजनिक इनहेरिटेंस(Inheritance) की एक मूल संपत्ति है।
हमने इसे प्रेजेंटेशन के दौरान देखा था, इनहेरिटेंस(Inheritance) पर चर्चा के दौरान, मैंने आउटपुट(output) स्ट्रीमिंग ऑपरेटर के बारे में बात की थी और दिखाया था कि बेस क्लास पैरामीटर के लिए व्युत्पन्न वर्ग(class) ऑब्जेक्ट(object) को पास करना अभी भी कास्टिंग की प्रक्रिया के माध्यम से काम करेगा।
तो, अर्थ के संदर्भ में, शब्दार्थ क्या कहा जा रहा है कि हम इस काम के लिए उम्मीद करते हैं क्योंकि कोई व्यक्ति छात्र हो सकता है, लेकिन निश्चित रूप से एक व्यक्ति एस होने के नाते भी खाने की उम्मीद है।
तो, यह ठीक काम करना चाहिए।
इसी तरह, अध्ययन(study) एस के लिए काम करेगा, लेकिन निश्चित रूप से जो काम नहीं करेगा वह है पी का अध्ययन(study), क्योंकि अध्ययन(study) कुछ ऐसा है जो छात्रों के साथ जुड़ा हुआ है।
व्युत्पन्न वर्ग(class) वस्तु और आप बेस क्लास के सामान्यीकृत ऑब्जेक्ट(object) को संतुष्ट करने में सक्षम होने की उम्मीद नहीं करते हैं।
ताकि सार्वजनिक इनहेरिटेंस(Inheritance) का क्या मतलब हो।
अब निजी इनहेरिटेंस(Inheritance) के विपरीत, यदि आप एक ही चीज़ को कक्षाओं के एक ही सेट पर देखते हैं, तो वही कार्य, P और S के समान हैं, P खाएँगे, तो काम करेंगे, लेकिन क्या देखें S खाएं, यदि आपने इसे एक के रूप में परिभाषित किया है निजी इनहेरिटेंस(Inheritance)।
अब C ++ के संदर्भ में यह एक त्रुटि है, यह संकलक इसे अनुमति नहीं देता है।
जबकि जनता के मामले में यह अनुमति देता है कि यह एक बुनियादी शब्दार्थ अंतर है।
इसकी अनुमति क्यों नहीं है, क्योंकि यहां की इनहेरिटेंस(Inheritance)।
तो, यह स्पष्ट रूप से आपको यह दिखाने के लिए जाता है कि यहाँ हम C ++ में इनहेरिटेंस(Inheritance) की संकेतन में क्या लिखते हैं क्योंकि निजी तौर पर इस अवधारणा का विशेषज्ञ होने का अर्थ नहीं है।
तो, यह सिर्फ कुछ और है, यह सिर्फ यह कह रहा है कि छात्र को संभवतः एक व्यक्ति के रूप में लागू किया जाता है और इसी तरह।
इसलिए, जो कार्यक्षमता व्यक्ति के लिए है वह छात्र के लिए उपलब्ध नहीं हो सकती है, यह घटक कार्यक्षमता है सामान्यीकरण विशेषज्ञता कार्यक्षमता नहीं है।
इसलिए, निजी इनहेरिटेंस(Inheritance) के संदर्भ में इस अवधारणा को हमेशा ध्यान में रखें।
समरूपता से कि इनहेरिटेंस(Inheritance) का तीसरा रूप जो C ++ प्रदान करता है, सार्वजनिक या निजी लिखने के बजाय हम इनहेरिटेंस(Inheritance) स्ट्रक्चर(structure) के इस बिंदु पर संरक्षित भी लिख सकते हैं।
और हम ऐसा करने के निहितार्थ देखेंगे।
मैं संरक्षित इनहेरिटेंस(Inheritance) की बहुत चर्चा नहीं करूंगा, क्योंकि यह बहुत विशिष्ट शब्दार्थ प्रस्तुत नहीं करता है, और कई लेखकों ने टिप्पणी की है कि संभवतः कोई अच्छी तरह से परिभाषित डिजाइन स्थिति नहीं है, जहां संरक्षित इनहेरिटेंस(Inheritance) की आवश्यकता हो सकती है।
तो, यह सुविधाओं के पूर्णता उद्देश्य के लिए अधिक है।
अब, अगर हमारे पास है तो क्या महत्वपूर्ण है, इसलिए अब आपके पास पैरामीटर के दो सेट हैं जो नियंत्रित करते हैं कि हम कैसे पहुंचते हैं, कैसे हम आधार और व्युत्पन्न वर्ग(class) में दृश्यता प्राप्त करते हैं।
तो, सवाल यह है कि अगर मैं सिर्फ आकर्षित करता हूं, तो मैं आधार और विशिष्ट हो सकता हूं क्योंकि डी मूल रूप से सार्वजनिक है, या मेरे पास आधार हो सकता है और कोई विशिष्ट नोटेशन उपलब्ध नहीं है।
इसलिए, मैं कुछ लहराती संकेतन का उपयोग कर रहा हूं कि यह वह जगह है जहां व्युत्पन्न वर्ग(class) डी एक संरक्षित तरीके से प्राप्त होता है।
और इसी तरह, मेरे पास आधार है और मैं कहता हूं कि एक और संकेतन भी मौजूद नहीं है, यह सिर्फ मैं इसे निजी तरीके से प्राप्त इस साधन का प्रतिनिधित्व करने के लिए बना रहा हूं।
अब प्रश्न इन तीन प्रकारों की इनहेरिटेंस(Inheritance), सार्वजनिक संरक्षित और निजी के बीच है, इसके अलावा बेस क्लास में दृश्यता के तीन सेट पहले से ही उपलब्ध हैं।
कुछ सदस्य सार्वजनिक हैं, कुछ सदस्य निजी हैं, और कुछ सदस्य सुरक्षित हैं।
इसलिए, व्युत्पन्न वर्ग(class) में, इन सदस्यों की दृश्यता का क्या होगा और यहां तक कि नीचे की ओर से जब मैं व्युत्पन्न वर्ग(class) से नीचे जाऊंगा तो उन लोगों की दृश्यता का क्या होगा (संदर्भसमय: 14:17), ताकि यह परिभाषित हो इस दृश्यता मैट्रिक्स।
तो, यहाँ हम कहते हैं कि वे विज़ुअलाइज़ेशन क्या हैं, बेस क्लास में दिए गए एक्सेस स्पेसियर्स क्या हैं।
और यहां और कॉलम हम कहते हैं कि किस तरह की इनहेरिटेंस(Inheritance) सार्वजनिक, संरक्षित या निजी है जिसका उपयोग किया जाता है, और उनके संयोजन से तय होता है कि किसी वस्तु की परिणामी दृश्यता क्या है।
इसलिए, अगर मेरे पास सार्वजनिक रूप से देखे जाने वाले सदस्य हैं, और व्युत्पन्न वर्ग(class) सार्वजनिक इनहेरिटेंस(Inheritance) का उपयोग करके इनहेरिटेंस(Inheritance) में मिला है, तो परिणामी सदस्य सार्वजनिक रहेगा, लेकिन अगर इसे निजी इनहेरिटेंस(Inheritance) कहकर इनहेरिटेंस(Inheritance) में मिला है, तो परिणामी सदस्य निजी होगा।
तो, दूसरे शब्दों में, यदि कुछ सदस्य की निजी दृश्यता, निजी अभिगम विनिर्देशक, उत्तराधिकार सार्वजनिक है, तो व्युत्पन्न वर्ग(class) में परिणामी दृश्यता निजी हो जाएगी जो कि व्युत्पन्न वर्ग(class) में है, ऐसा माना जाएगा जैसे कि यह निजी सदस्य है शीघ्र।
तो, मेरा मतलब है कि आप महसूस कर सकते हैं कि आपको इन नौ प्रविष्टियों को याद रखना होगा, लेकिन इसे समझने के लिए बहुत ही सरल अंगूठे का नियम है।
अब हम समझते हैं कि सार्वजनिक एक सबसे खुली दृश्यता है जो सूचीबद्ध दृश्यता है।
संरक्षित की तुलना में थोड़ा अधिक है और निजी सबसे अधिक दृश्यता है।
तो, इन तीनों के बीच पदानुक्रम(hierarchy) है।
तो, अगर आप इस पर गौर करते हैं, तो मूल रूप से इस पर एक पदानुक्रम(hierarchy) माना जाता है।
इसलिए, यदि आप यह समझने की कोशिश कर रहे हैं कि यह प्रविष्टि क्या होनी चाहिए, तो आपको यह देखना चाहिए कि दृश्य एक्सेस स्पेसियर(access specifier) क्या हैं और इन दोनों में से जो भी इनहेरिट किया गया है, उसका परिणाम क्या होगा।
इसलिए, पब्लिक प्राइवेट प्राइवेट होगी।
इसी तरह यदि मेरे पास निजी सार्वजनिक हैं, तो मेरे पास निजी होंगे।
यदि मैंने जनता की रक्षा की है, तो मैंने रक्षा की होगी।
यदि मैंने निजी की रक्षा की है, तो मेरे पास निजी होगी क्योंकि संरक्षित और निजी के बीच, निजी अधिक प्रतिबंधात्मक है।
तो, यह मूल रूप से अंगूठे का नियम सरल है कि आपको जितना संभव हो सके एनकैप्सुलेशन(encapsulation) को संरक्षित करने की आवश्यकता है।
तो, आप अधिक प्रतिबंधित हो जाते हैं और इस आरेख के नीचे स्पष्ट रूप से यह दर्शाया गया है कि इनहेरिटेंस(Inheritance) हो जाने के बाद एक्सेस विनिर्देश पुनः कैसे प्राप्त होता है।
निश्चित रूप से, प्रतिबंधित प्रकार की इनहेरिटेंस(Inheritance) के बारे में चर्चा करने से पहले, हम नहीं थे, इसलिए हमें इस पर चर्चा नहीं करनी थी, क्योंकि अगर आप सिर्फ पहले कॉलम को देखते हैं, क्योंकि इनहेरिटेंस(Inheritance) सूची प्रतिबंधात्मक इनहेरिटेंस(Inheritance) है, तो सूची को इनकैप्सुलेशन प्रदान करता है, इसलिए, दृश्यता एक व्युत्पन्न वर्ग(class) में डेटा सदस्यों(data members) या सदस्य कार्यों(member functions) का आधार कक्षा(class) में उनकी दृश्यता या दृश्यता के समान ही है।
यह पब्लिक है, पब्लिक है, प्रोटेक्ट है, प्रोटेक्टेड है, प्राइवेट प्राइवेट है।
लेकिन जैसा कि हम इनहेरिटेंस(Inheritance) के अन्य रूपों को पेश करते हैं, यह एक्सेस प्रतिबंध विवरण आवश्यक हो जाता है।
इसलिए, इसके साथ, हम फिर से वापस जा सकते हैं और थोड़ा व्यायाम करने की कोशिश कर सकते हैं।
यह एक अभ्यास है जो आपको पहले जैसी संरचना दिखा रहा है, लेकिन हमारे पास यहां सार्वजनिक और निजी इनहेरिटेंस(Inheritance) दोनों हैं।
तो, अगर हम डी के निर्माण के संदर्भ में फिर से देखना चाहते हैं तो क्या होना चाहिए? तो फिर मुझे, यह वह वर्ग(class) बी है जिसे हम जानते हैं, सी आईएसए(ISA) बी तो यह वही है जो हम यहां खींचते हैं।
तब हम कहते हैं कि डी आईएसए(ISA) प्राइवेट सी।
तो, हमें इसे इस तरह से आकर्षित करना चाहिए।
तो, यह वही है जो हमें देखने को मिलता है।
फिर ऑब्जेक्ट(object) लेआउट के संदर्भ में हम पाते हैं कि डी ऑब्जेक्ट(object) में एक आधार भाग होना चाहिए, जो कि सी है, आधार भाग सी है।
फिर इसमें एक डेटा हिस्सा है, जो कि सी भी है, यह आधार हिस्सा सी है और साथ ही डेटा भी है हिस्सा भी सी है, और वह सब हमारे पास है।
हमारे पास C एक B है, C यहाँ एक B है, इसलिए C के पास फिर से एक आधार भाग होगा जो B है और इसका एक आधार भाग होगा, जो कि B है।
हमारे पास प्रत्येक C ऑब्जेक्ट(object) का एक बेस क्लास इंस्टेंटेशन होगा क्योंकि यहाँ विशेषज्ञता है।
तो, यह देखते हुए, यदि आप अब ट्रेस करने की कोशिश करते हैं, तो ऑब्जेक्ट्स का निर्माण कैसे होगा, निश्चित रूप से जैसे ही यह डी का कंस्ट्रक्टर(constructor) सामने आता है, इसलिए आधार को तुरंत प्राप्त करना पड़ता है।
तो, सी के निर्माता को बुलाया जाएगा।
तो, उस आधार का निर्माण करना होगा।
तो, पहली चीज जो निर्माण की जाएगी वह बी ऑब्जेक्ट(object) है, यह बी ऑब्जेक्ट(object) है।
फिर निश्चित रूप से आधार वस्तु का निर्माण पूरा हो जाता है।
इस प्रकार, सी इस निर्माण को पूरा करेगा।
फिर उस डेटा सदस्य को इस डेटा सदस्य का निर्माण करना होता है जिसका आधार भाग भी होता है ताकि निर्माण हो सके तब डेटा सदस्य का निर्माण हो जाता है और फिर अंत में डी ऑब्जेक्ट(object) का निर्माण हो जाता है।
तो, यह वह क्रम है जिसमें निर्माण होगा।
इसलिए, निजी इनहेरिटेंस(Inheritance) के संदर्भ में भी जीवन समय के मुद्दे प्रभावित नहीं होते हैं, जीवन समय के मुद्दे समान रहते हैं।
इसलिए, हमने यह देखा था कि क्या इस तरह का व्यायाम सिर्फ सार्वजनिक इनहेरिटेंस(Inheritance) का है।
इसलिए, जानबूझकर मैंने यहां निजी इनहेरिटेंस(Inheritance) पेश की है जो एक्सेस विनिर्देश को बदल देती है, जिसे आप एक्सेस कर सकते हैं, जिसे आप एक्सेस नहीं कर सकते हैं, लेकिन वस्तु जीवन समय की गतिशीलता के संदर्भ में चीजें वास्तव में अलग नहीं हो जाती हैं, वे समान बनी रहती हैं।
इसका पूरा हल यहां अगली स्लाइड में दिया गया है।
तो, आराम से, आप बाहर काम कर सकते हैं और सुविधा प्राप्त कर सकते हैं कि यह क्या होने वाला है।
एक्सेस स्पेसिफिकेशन(access specification) को समझने के लिए, मैंने एक उदाहरण को फिर से शामिल किया है, मैं सिर्फ कुछ चरणों को करूँगा और फिर इसे अभ्यास के रूप में छोड़ दूंगा कि आप पहले कक्षा(class) ए में विश्लेषण करें कि क्या है एक वर्ग(class) ए है।
इसलिए, जब भी आपके पास इस पदानुक्रम(hierarchy) से संबंधित डिजाइन या पदानुक्रम(hierarchy) से संबंधित मुद्दे हैं, तो यह सिर्फ एक आरेख को जल्दी से आकर्षित करने के लिए अच्छा है, ताकि मानसिक रूप से आप देख सकें कि वास्तव में क्या चल रहा है।
मुझे बार-बार कोड करने के लिए संदर्भित करने और इस बारे में बात करने के लिए खेद है, मुझे अक्सर संदर्भित करना अधिक कठिन है।
तो, हमारे पास B ISA A है, तो हमारे पास यह है।
तो, हम कहते हैं कि सी ए ए ए; हमारे पास डी आईएसए(ISA) ए भी है।
यह सार्वजनिक प्रकार का है, यह संरक्षित है, और यह निजी है।
और फिर हमारे पास ये हैं ई आईएसए(ISA) बी पब्लिक; एफ आईएसए(ISA) सी, जो सार्वजनिक है; G ISA D जो सार्वजनिक है।
तो, यह मूल पदानुक्रम(hierarchy)(heirarchy) है जो हमारे पास है।
तो, अगर आपके पास ऐसा है, और हमारे पास अलग-अलग सदस्य हैं यहां x, y, z - तीन प्रकार की दृश्यता वाले तीन सदस्य हैं; निजी, संरक्षित और सार्वजनिक।
और बी यू, वी, और डब्ल्यू को जोड़ता है, इसलिए सी करता है, इसलिए डी करता है, और ये डेटा सदस्य निजी, संरक्षित और सार्वजनिक प्रकार के भी हैं।
इसलिए, यह किया जा रहा है कि हमारा सवाल यह है कि अगर हम अब विभिन्न सदस्य कार्यों(member functions) में चर की अलग-अलग पहुंच पर गौर करते हैं और यह एक वैश्विक कार्य है तो क्या सदस्यों तक पहुंच हो सकती है, जो सदस्यों तक नहीं पहुंच सकती है।
तो, जिस तरह से मैं यहां प्रदर्शित करता हूं, यहां मैं केवल वही दिखाता हूं जो मैंने बाईं ओर दिखाया है, मैंने केवल दुर्गम सदस्यों को दिखाया है, अगर मुझे कक्षा(class) बी में एक समारोह में क्षमा करें, तो मुझे माफ करना एक फ़ंक्शन(function) च () है x इस फ़ंक्शन(function) के लिए सुलभ है।
ऐसा क्यों है? X कहां से आ रहा है, B का x नहीं है, लेकिन B ISA A का एक x है।
तो, इस एक्स का वास्तव में मतलब है कि यह A: :x है जो इनहेरिटेंस(Inheritance) में मिला है।
और एक्सेस स्पेसियर(access specifier) प्राइवेट क्या है।
तो, निश्चित रूप से व्युत्पन्न वर्ग(class) आधार वर्ग(class) के निजी डेटा सदस्यों(data members) तक नहीं पहुंच सकता है।
तो, यह दुर्गम है।
यदि आप कक्षा(class) C में x को देखते हैं, तो यह फिर से वही तर्क है कि यह A में निजी है, इसलिए, आप इसे एक्सेस नहीं कर सकते; आप इसे कक्षा(class) डी में एक्सेस नहीं कर सकते, क्योंकि यह ए में निजी है, स्पष्ट है।
अब हम कहते हैं कि यदि हम वर्ग(class) E को देखते हैं, और फ़ंक्शन(function) f () है कि वर्ग(class) E इस तथ्य को परिभाषित करता है कि x अप्राप्य होगा, क्योंकि x यहाँ निजी है इसलिए x, B में निजी है, x में निजी है डी में सी, एक्स निजी है क्योंकि यह बी के लिए निजी है, यह निजी विशिष्ट सार्वजनिक इनहेरिटेंस(Inheritance) है, परिणामी दृश्यता निजी है।
सी के लिए, यह सार्वजनिक रूप से खेदजनक है, जो विशिष्ट निर्दिष्ट उत्तराधिकार सुरक्षित है, संरक्षित इनहेरिटेंस(Inheritance), परिणामी निजी है।
ए में, यह विशिष्ट है निजी इनहेरिटेंस(Inheritance) डी में निजी परिणाम है, यह निजी है।
इसलिए, B, C, D सभी में, हम यह कारण दे सकते हैं कि x वास्तव में निजी है।
तो, यह पहुंच इस में से किसी के लिए भी सुलभ नहीं होगी।
लेकिन ई में, आप पाते हैं कि यू सुलभ नहीं है।
यू क्यों सुलभ नहीं है, आप यहां क्या कर रहे हैं तो, यह कहां से यू में प्राप्त कर सकता है, इसके पास कोई डेटा सदस्य नहीं है।
तो, यह यू को मूल वर्ग(class) बी से प्राप्त कर सकता है।
तो, यह बी का एक यू है।
तो, यह u मूल रूप से B:: u है जो B का निजी सदस्य है, इसलिए आप इसे यहां नहीं ले सकते।
आप कक्षा(class) F के लिए समान तर्क कर सकते हैं।
कक्षा(class) G को देखें, वर्ग(class) G एक्सेस नहीं कर सकता है, इसलिए उदाहरण के लिए कई अलग-अलग चीजें, क्लास G y तक पहुँच नहीं सकती हैं, वर्ग(class) G y तक पहुँच नहीं सकता है।
तो, यह y कहां वाई रूप प्राप्त करता है, यह y स्वयं का नहीं है।
तो, यह मुझे कहां से प्राप्त करना है, इसे इस रास्ते पर लाना होगा।
तो, हमें यह माता पिता है डी है, डी किसी भी वाई नहीं है; यू, वी और डब्ल्यू, इसमें कोई वाई नहीं है।
तो, यह कहाँ से प्राप्त कर सकते हैं, अगर माता पिता A जिसके पास एक वाई है।
तो, आप यहाँ जानते हैं, यह संरक्षित है, यह y संरक्षित है।
तो, चाइल्ड क्लास को उस तक पहुंचने में सक्षम होना चाहिए जो डी है उसे एक्सेस करने में सक्षम होना चाहिए।
क्या D इसे एक्सेस कर सकता है, अगर मैं D पर जाता हूं, अगर मैं D पर जाता हूं, तो D में कार्य इस f फ़ंक्शन(function) y तक पहुंच सकता है और यही कारण है कि इसका उल्लेख यहां नहीं किया गया है जो कि शांत है क्योंकि आप हमेशा इसे अभिभावक से एक्सेस कर सकते हैं , लेकिन क्या होता है डी को एक निजी इनहेरिटेंस(Inheritance) तंत्र के माध्यम से इनहेरिटेंस(Inheritance) में मिला है।
तो, जो y ए में संरक्षित था वह अब डी में निजी हो गया है, यह लिखित नहीं है, लेकिन यह इनहेरिटेंस(Inheritance) के भीतर है यह एक निजी सदस्य बन गया है और निश्चित रूप से कोई व्युत्पन्न वर्ग(class) एक निजी सदस्य तक नहीं पहुंच सकता है, इसलिए जी पहुंच नहीं सकता है और येही एक कारण है कि आप जी नहीं कर पाएंगे और आप वाई का उपयोग नहीं कर पाएंगे।
आप इन चरों के लिए भी समान विश्वास कर सकते हैं।
आगे जाकर, आप कर सकते हैं, मैं अब ऐसा नहीं करूंगा, आप कर सकते हैं, आपको यह काम करने में सक्षम होना चाहिए।
यह वह जगह है जहां हमने इस पदानुक्रम(hierarchy) को देखा था कि विभिन्न सदस्यों की पहुंच वास्तव में फिर से मैंने डेटा सदस्यों(data members) के लिए यह सब कैसे दिखाया है, लेकिन इसी तरह आप सदस्य कार्यों(member functions) के लिए भी आवेदन करेंगे, यह इनहेरिटेंस(Inheritance) के विभिन्न रूपों को कैसे करेगा अंतर के साथ निर्दिष्ट सदस्य के कार्यों के संदर्भ में स्पष्ट होगा।
आप अभी एक वैश्विक समारोह के लिए इसे फिर से हल करने का प्रयास कर सकते हैं।
और यह सब आपको पालन करना होगा पदानुक्रम(hierarchy)पर जाने का एक समान तर्क है।
यदि आप यह कहने की कोशिश कर रहे हैं कि c.w सुलभ है, तो c वर्ग(class) C का है, इसलिए यह यहाँ है।
तो, आप देखते हैं कि सी मे एक डब्ल्यू है, सी मे एक डब्ल्यू है।
और एक वैश्विक कार्य होने के नाते इसे सक्षम करने के लिए यह केवल उन सदस्यों तक पहुंचने में सक्षम होगा जो सार्वजनिक हैं।
इसलिए, सी मे एक w है जो सार्वजनिक है इसलिए, यह सुलभ है।
लेकिन आप किसी भी अन्य चर के बारे में सोचते हैं कि किसी भी अन्य सदस्य के पास सी है उनमें से कोई भी उदाहरण के लिए सुलभ नहीं है, वी सुलभ नहीं है, क्योंकि यहां वी संरक्षित है; z सुलभ नहीं है, z सुलभ क्यों नहीं है, क्योंकि अगर मैं c.z की बात करूं, तो यहां कोई z नहीं है।
तो, जेड ए से आता है, जो सार्वजनिक है, यह सुलभ होना चाहिए था, लेकिन इनहेरिटेंस(Inheritance) की प्रक्रिया में जो कुछ हुआ है, वह आपको एक संरक्षित इनहेरिटेंस(Inheritance) के रूप में मिला है; सी संरक्षित तरीके से ए को इनहेरिटेंस(Inheritance) में मिला है।
इसलिए, z की परिणामी दृश्यता सार्वजनिक और रक्षक की कम हो गई है।
तो, यह संरक्षित सदस्य बन गया है और संरक्षित सदस्य वर्ग(class) के बाहर दिखाई नहीं दे रहा है, क्योंकि एफ एक वैश्विक कार्य है यहां यह एफ को दिखाई नहीं देता है।
इसलिए, c.z सुलभ नहीं है।
तो, इस तरह से, मैं आपसे अनुरोध करूंगा कि आप इस पूरे सेट के लिए काम करें और इससे आपके सभी संदेह स्पष्ट हो जाएंगे।
अब, आखिरकार, मैं आपको केवल यह दिखाने की कोशिश करूंगा कि निजी इनहेरिटेंस(Inheritance) के उपयोग की कुछ संभावनाएं।
हम एक उदाहरण फिर से लेते हैं कि आपको पहले बाएं हाथ की ओर देखना चाहिए, जहां मेरे पास एक इंजन(engine) वर्ग(class) है, और एक कार वर्ग(class) है, और मूल अवधारणा यह है कि कार में एक इंजन(engine) है।
इसलिए, अगर कार में इंजन(engine) है तो इसमें कंपोनेंट(component) है।
इसलिए, मैं इसे इस तरीके से मॉडल कर सकता हूं।
तो, कि कार का कंस्ट्रक्टर(constructor) इंजन(engine) को तुरंत बदल देता है जो कि 8 सिलेंडर मूल्य के साथ कंस्ट्रक्टर(constructor) को आमंत्रित करता है।
इसलिए, मेरे पास यहां एक इंजन(engine) उदाहरण है।
और इसलिए, और उस इंजन(engine) को शुरू करने के संदर्भ में, कार ने विधि प्रारंभ() प्रदान किया है जो वास्तव में इंजन(engine) की विधि प्रारंभ() को लागू करता है।
और अगर मैं ऐसा करता हूं, तो कार शुरू हो जाएगी, सरल रचना आधारित मॉडल।
अब मैं तुलना के लिए समानांतर में दिखाता हूं कि यह निजी इनहेरिटेंस(Inheritance) के संदर्भ में भी तैयार किया जा सकता है, मेरे पास एक ही इंजन(engine) वर्ग(class) है कोई अंतर नहीं है, लेकिन मैं जो बदलता हूं वह मैं इस निजी डेटा सदस्य का उपयोग नहीं करता हूं इसके बजाय मैं एक निजी तरीके से इंजन(engine) वर्ग(class) से इनहेरिटेंस(Inheritance) में मिला।
अगर मुझे इंजन(engine) क्लास से इनहेरिटेंस(Inheritance) में मिला है, तो एक निजी तरीका है, मेरे पास क्या है, यहाँ मेरे पास क्लास और कार क्लास हैं और मेरे पास इंजन(engine) एक डेटा सदस्य के रूप में है।
यहाँ जब से मुझे इनहेरिटेंस(Inheritance) में मिला है तब भी मेरे पास एक बेस क्लास उदाहरण के रूप में इंजन(engine) होगा, मेरे पास कार यहाँ है और यह एक बेस क्लास इंस्टेंस है, ताकि इस तरह से मुझे मूल्य मिल सके, लेकिन निश्चित रूप से मुझे क्या करना होगा मुझे इंजन(engine) शुरू करने की क्षमता होनी चाहिए।
तो, यह वही है जो मैं यहां निर्दिष्ट करता हूं यह सिर्फ एक और संकेतन है जहां आप उपयोग कर रहे हैं।
इसलिए, जब आप बेस क्लास:: मेथड नेम का उपयोग करते हुए कहते हैं, तो इसका मतलब यह है कि जब भी मैं इस नाम की बात करता हूं, तो वास्तव में इसका मतलब बेस क्लास आइटम होता है, इसका मतलब है कि बेस क्लास फंक्शन।
इसलिए, अगर मैं ऐसा करता हूं तो मैं फिर से कार को पलटा सकता हूं और c.start कर सकता हूं; और c.start इसके माध्यम से वास्तव में इंजन(engine) की शुरुआत कहेगा, जो फिर से इंजन(engine) शुरू हो जाएगा।
तो, यहां भी इंजन(engine) दूसरों को दिखाई नहीं देता है, क्योंकि एक निजी डेटा सदस्य है, यहां भी यह दूसरों के लिए सुलभ नहीं है, क्योंकि मैंने एक निजी इनहेरिटेंस(Inheritance) किया है।
तो, यह एक और तरीका है कि कुछ कार्यान्वयन हो सकता है मेरा मतलब है कि आप किसी प्रकार के घटक को निजी इनहेरिटेंस(Inheritance) के रूप में लागू कर सकते हैं, और निश्चित रूप से यह हमें इस सवाल पर लाता है कि हमें स्वाभाविक रूप से किसका उपयोग करना चाहिए, निजी इनहेरिटेंस(Inheritance) का उपयोग करने का कोई सवाल ही नहीं है।
सामान्य स्थिति, आपको हमेशा रचना का उपयोग करना चाहिए।
केवल कुछ विशेष परिस्थितियाँ जहाँ रचना वास्तव में काम नहीं करती है, आपको निजी इनहेरिटेंस(Inheritance) का उपयोग करना चाहिए।
और आप उनका उपयोग केवल तभी करते हैं जब उन परिस्थितियों का सामना किया जाता है।
इसलिए, जब हम इस श्रृंखला में बाद में बहुरूपता पर चर्चा करते हैं, तो एक उपयुक्त बिंदु पर मैं आपको कुछ समस्याओं के बहुरूपता का उपयोग करके उदाहरण दिखाऊंगा, जहां निजी इनहेरिटेंस(Inheritance) आपको रचना का उपयोग करने की तुलना में वास्तव में बेहतर समाधान दे सकती है।
लेकिन एक अंगूठे के नियम के रूप में, मैं 99.99 प्रतिशत मामलों में कहूंगा कि अगर रचना की स्थिति है, तो आपको वास्तव में डेटा सदस्यों(data members) का उपयोग करना चाहिए और उस स्थान पर निजी इनहेरिटेंस(Inheritance) का उपयोग नहीं करना चाहिए।
संक्षेप में, हमने यहां निजी और संरक्षित इनहेरिटेंस(Inheritance) के संदर्भ में प्रतिबंधों की बुनियादी धारणाओं को प्रस्तुत किया है।
और हमने चर्चा की है कि वास्तव में प्रोटोकॉल(protocol) को कैसे परिभाषित किया जाता है, जिसके माध्यम से तीन प्रकार की सार्वजनिक, संरक्षित और निजी दृश्यता तीन प्रकार की इनहेरिटेंस(Inheritance) सार्वजनिक, संरक्षित और निजी इनहेरिटेंस(Inheritance) के साथ बातचीत करती है।
और अंत में, हमने एक उदाहरण दिखाते हुए यह दिखाने की कोशिश की है कि निजी इनहेरिटेंस(Inheritance) का उपयोग कैसे किया जा सकता है, यह महसूस करने के लिए कि किस चीज को आमतौर पर कुछ और के रूप में कार्यान्वित किया जाता है या किसी अन्य चीज के एक घटक का उपयोग या उपयोग किया जाता है और सावधानी के साथ, हम इसका उपयोग बहुत ही प्रतिबंधात्मक तरीके से करेंगे।
इसलिए, इसके साथ, हम इनहेरिटेंस(Inheritance) की मूल धारणाओं की श्रृंखला के करीब लाएंगे।
और अगले मॉड्यूल से, हम इनहेरिटेंस(Inheritance) के उन्नत पहलुओं के बारे में बात करेंगे, जो कि बहुपद के रूप में जाना जाता है, जो कि चर्चा करने के लिए मुख्य विचार होगा।
C ++ में प्रोग्रामिंग 35 के मॉड्यूल(module) 35 में आपका स्वागत है।
C ++ में प्रोग्रामिंग 35 के मॉड्यूल(module) 35 में आपका स्वागत है।
हम कई इनहेरिटेंस(inheritance) पर चर्चा कर रहे हैं और हमने निर्माण, विनाश, लेआउट(layout), डेटा(data) सदस्यों, सदस्य कार्यों के बुनियादी तंत्र को देखा है और क्या होता है, अगर कई आधार वर्गों के बीच, यदि डेटा(data) सदस्य या सदस्य फ़ंक्शन(function) समान नामों की नकल करते हैं।
हम कई इनहेरिटेंस(inheritance) पर चर्चा कर रहे हैं और हमने निर्माण, विनाश, लेआउट(layout), डेटा(data) सदस्यों, सदस्य कार्यों के बुनियादी तंत्र को देखा है और क्या होता है, अगर कई आधार वर्गों के बीच, यदि डेटा(data) सदस्य या सदस्य फ़ंक्शन(function) समान नामों की नकल करते हैं।
अब, हम कुछ अधिक एकीकृत उपयोग परिदृश्यों पर गौर करेंगे और बताएंगे कि हमारे पास छात्रों के शिक्षक TA परिदृश्य हैं, जहाँ TA एक छात्र है, TA एक शिक्षक है और दोनों हैं व्यक्ति हैं इसलिए, हमारे पास एक हीरे की तरह की स्थिति है और हम इसे हीरे की समस्या कहते हैं, हम देखेंगे कि हम इसे हीरे की समस्या क्यों कहते हैं।
अब, हम कुछ अधिक एकीकृत उपयोग परिदृश्यों पर गौर करेंगे और बताएंगे कि हमारे पास छात्रों के शिक्षक TA परिदृश्य हैं, जहाँ TA एक छात्र है, TA एक शिक्षक है और दोनों हैं व्यक्ति हैं
इसलिए, हमारे पास एक हीरे की तरह की स्थिति है और हम इसे हीरे की समस्या कहते हैं, हम देखेंगे कि हम इसे हीरे की समस्या क्यों कहते हैं।
मैंने पहले ही समझाया है कि यह बहुत सामान्य है कि आपके पास बहु इनहेरिटेंस(inheritance) में मिली क्लास(class) की आधार कक्षाओं के लिए एक सामान्य आधार क्लास(class) होगा।
मैंने पहले ही समझाया है कि यह बहुत सामान्य है कि आपके पास बहु इनहेरिटेंस(inheritance) में मिली क्लास(class) की आधार कक्षाओं के लिए एक सामान्य आधार क्लास(class) होगा।
तो, आइए हम कोड व्यक्ति को देखने की कोशिश करते हैं, जो एक क्लास(class) है, यहाँ मैंने इसे संकाय कहा है, उदाहरण में मैंने इसे संकाय कहा है, जिसका अर्थ है कि शिक्षक एक कक्षा का छात्र है एक क्लास(class) है इसलिए वे एक व्यक्ति से इनहेरिटेंस(inheritance) में मिलते हैं।
तो, आइए हम कोड व्यक्ति को देखने की कोशिश करते हैं, जो एक क्लास(class) है, यहाँ मैंने इसे संकाय कहा है, उदाहरण में मैंने इसे संकाय कहा है, जिसका अर्थ है कि शिक्षक एक कक्षा का छात्र है एक क्लास(class) है इसलिए वे एक व्यक्ति से इनहेरिटेंस(inheritance) में मिलते हैं।
तो, और फिर टीए दोनों संकाय और छात्र से इनहेरिटेंस(inheritance) में मिला, इसलिए यह परिदृश्य है।
तो, और फिर टीए दोनों संकाय और छात्र से इनहेरिटेंस(inheritance) में मिला, इसलिए यह परिदृश्य है।
...
@@ -110,4 +111,3 @@ C ++ में प्रोग्रामिंग 35 के मॉड्यू
...
@@ -110,4 +111,3 @@ C ++ में प्रोग्रामिंग 35 के मॉड्यू
और अंत में, आपको इनहेरिटेंस(inheritance) के उपयोग के बीच एक डिज़ाइन विकल्प के बारे में कुछ विचार देने की कोशिश करें, क्योंकि दृश्य संरचना और संरचना का केवल एक ही तंत्र इनहेरिटेंस(inheritance) और संरचना का मिश्रण बनाता है और एक प्रमुख बहुरूपिक प्रतिनिधित्व के रूप में ऑब्जेक्ट(object) के प्रमुख पदानुक्रम(hierarchy) पर निर्णय लेता है।
और अंत में, आपको इनहेरिटेंस(inheritance) के उपयोग के बीच एक डिज़ाइन विकल्प के बारे में कुछ विचार देने की कोशिश करें, क्योंकि दृश्य संरचना और संरचना का केवल एक ही तंत्र इनहेरिटेंस(inheritance) और संरचना का मिश्रण बनाता है और एक प्रमुख बहुरूपिक प्रतिनिधित्व के रूप में ऑब्जेक्ट(object) के प्रमुख पदानुक्रम(hierarchy) पर निर्णय लेता है।
वस्तुओं का।
वस्तुओं का।
और संदर्भ के संदर्भ में अन्य लोगों की रचना का उपयोग करना और फिर उसी के अनुसार अपने पॉलीमोर्फिक(polymorphic) प्रेषण करना।
और संदर्भ के संदर्भ में अन्य लोगों की रचना का उपयोग करना और फिर उसी के अनुसार अपने पॉलीमोर्फिक(polymorphic) प्रेषण करना।
@@ -139,4 +139,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
...
@@ -139,4 +139,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
यह निर्माण प्रक्रिया की मूल गतिशीलता है।
यह निर्माण प्रक्रिया की मूल गतिशीलता है।
यदि आप बेस क्लास कंस्ट्रक्टर(constructor) और डिस्ट्रक्टर्स और इतने पर और व्युत्पन्न क्लास कंस्ट्रक्टर(constructor) डिस्ट्रक्टर(destructor) में संदेश डालते हैं, तो आप देख पाएंगे कि पहले बेस क्लास १ का निर्माण किया गया है क्योंकि यह पहले है सूची में, फिर बेस क्लास 2 क्योंकि यह सूची में दूसरे स्थान पर है, और फिर व्युत्पन्न क्लास(class) का निर्माण और विनाश बिल्कुल रिवर्स ऑर्डर में होता है।
यदि आप बेस क्लास कंस्ट्रक्टर(constructor) और डिस्ट्रक्टर्स और इतने पर और व्युत्पन्न क्लास कंस्ट्रक्टर(constructor) डिस्ट्रक्टर(destructor) में संदेश डालते हैं, तो आप देख पाएंगे कि पहले बेस क्लास १ का निर्माण किया गया है क्योंकि यह पहले है सूची में, फिर बेस क्लास 2 क्योंकि यह सूची में दूसरे स्थान पर है, और फिर व्युत्पन्न क्लास(class) का निर्माण और विनाश बिल्कुल रिवर्स ऑर्डर में होता है।
यह इनहेरिटेंस(inheritance) का मूल तंत्र है जो किसी विशेष व्युत्पन्न क्लास(class) समस्या के लिए आधार क्लास(class) के कई मामलों के संदर्भ में आगे बढ़ता है।
यह इनहेरिटेंस(inheritance) का मूल तंत्र है जो किसी विशेष व्युत्पन्न क्लास(class) समस्या के लिए आधार क्लास(class) के कई मामलों के संदर्भ में आगे बढ़ता है।
@@ -213,4 +213,3 @@ C ++ में प्रोग्रामिंग(Programming) के मॉ
...
@@ -213,4 +213,3 @@ C ++ में प्रोग्रामिंग(Programming) के मॉ
उदाहरण के लिए, यदि आप एक लाइब्रेरी विकसित कर रहे हैं, जिसे आप दूसरों के साथ साझा करना चाहते हैं, तो यह हमेशा एक अच्छा विचार है कि आप उस संपूर्ण चीज़ को एक सार्थक नाम स्थान का नाम दें और उस नेमस्पेस(namespace) के अंदर उस संपूर्ण विकास को डालें, जैसे कि मानक लाइब्रेरी std का उपयोग कर रहा है।
उदाहरण के लिए, यदि आप एक लाइब्रेरी विकसित कर रहे हैं, जिसे आप दूसरों के साथ साझा करना चाहते हैं, तो यह हमेशा एक अच्छा विचार है कि आप उस संपूर्ण चीज़ को एक सार्थक नाम स्थान का नाम दें और उस नेमस्पेस(namespace) के अंदर उस संपूर्ण विकास को डालें, जैसे कि मानक लाइब्रेरी std का उपयोग कर रहा है।
और फिर इसे उपयोगकर्ता को दें, ताकि यह संभावना न रहे कि, आपने अपनी लाइब्रेरी में कुछ फ़ंक्शन(function) नाम या वर्ग नामों का उपयोग किया है, जिसे उपयोगकर्ता भी उपयोग करना चाहता है, लेकिन ऐसा करने में सक्षम नहीं है।
और फिर इसे उपयोगकर्ता को दें, ताकि यह संभावना न रहे कि, आपने अपनी लाइब्रेरी में कुछ फ़ंक्शन(function) नाम या वर्ग नामों का उपयोग किया है, जिसे उपयोगकर्ता भी उपयोग करना चाहता है, लेकिन ऐसा करने में सक्षम नहीं है।
इसलिए, यह नेमस्पेसस(namespaces) के बारे में है और हम यहां बंद हो जाएंगे।
इसलिए, यह नेमस्पेसस(namespaces) के बारे में है और हम यहां बंद हो जाएंगे।
@@ -60,4 +60,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
...
@@ -60,4 +60,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
इसके साथ हम इस मॉड्यूल के करीब आते हैं, जहाँ, हमने ऑपरेटर(operator) को ओवरलोडिंग(overloading) से परिचित कराया है और हमने ऑपरेटर(operator) ओवरलोडिंग(overloading) के लिए अलग-अलग नियम और अपवादों को समझाया है।
इसके साथ हम इस मॉड्यूल के करीब आते हैं, जहाँ, हमने ऑपरेटर(operator) को ओवरलोडिंग(overloading) से परिचित कराया है और हमने ऑपरेटर(operator) ओवरलोडिंग(overloading) के लिए अलग-अलग नियम और अपवादों को समझाया है।
और अगले मॉड्यूल में, मॉड्यूल 10 में, हम गतिशील मेमोरी प्रबंधन के संदर्भ में विस्तार के एक और विशेष मामले और ऑपरेटर(operator) के ओवरलोडिंग(overloading) के विशेष मामले को दिखाएंगे।
और अगले मॉड्यूल में, मॉड्यूल 10 में, हम गतिशील मेमोरी प्रबंधन के संदर्भ में विस्तार के एक और विशेष मामले और ऑपरेटर(operator) के ओवरलोडिंग(overloading) के विशेष मामले को दिखाएंगे।
हम ऐसे परिचालकों का परिचय देंगे जो C ++ डायनेमिक मेमोरी मैनेजमेंट के लिए प्रदान करते हैं और हम फिर से दिखाएंगे कि डायनेमिक मेमोरी मैनेजमेंट ऑपरेटरों(operators) के संदर्भ में ऑपरेटर(operator) ओवरलोडिंग(overloading) को कैसे लागू किया जा सकता है, C ++ में मेमोरी मैनेजमेंट में विभिन्न प्रकार के मजबूत फायदे देखें।
हम ऐसे परिचालकों का परिचय देंगे जो C ++ डायनेमिक मेमोरी मैनेजमेंट के लिए प्रदान करते हैं और हम फिर से दिखाएंगे कि डायनेमिक मेमोरी मैनेजमेंट ऑपरेटरों(operators) के संदर्भ में ऑपरेटर(operator) ओवरलोडिंग(overloading) को कैसे लागू किया जा सकता है, C ++ में मेमोरी मैनेजमेंट में विभिन्न प्रकार के मजबूत फायदे देखें।
@@ -139,4 +139,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
...
@@ -139,4 +139,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
तो, आप देख सकते हैं कि हमने केवल कुछ अलग प्रकार के दो उदाहरण दिखाए हैं, जहां दोनों मामलों में, ऑपरेटर(operator) प्लस को अधिभारित किया गया है।
तो, आप देख सकते हैं कि हमने केवल कुछ अलग प्रकार के दो उदाहरण दिखाए हैं, जहां दोनों मामलों में, ऑपरेटर(operator) प्लस को अधिभारित किया गया है।
स्ट्रिंग(string) में यह मुझे एक जटिल ऑपरेशन को बदलने के लिए सिर्फ एक प्लस ऑपरेशन का उपयोग करके अनुमति देता है।
स्ट्रिंग(string) में यह मुझे एक जटिल ऑपरेशन को बदलने के लिए सिर्फ एक प्लस ऑपरेशन का उपयोग करके अनुमति देता है।
और यहां एनम के लिए, मैं एक विशेष शब्दार्थ दे सकता हूं, मैं अपने प्रकार के लिए एक नया शब्दार्थ दे सकता हूं, जबकि अंडरलाइन प्रकार, आप पूर्णांक में बने रहने के लिए निरंतर हो सकते हैं।
और यहां एनम के लिए, मैं एक विशेष शब्दार्थ दे सकता हूं, मैं अपने प्रकार के लिए एक नया शब्दार्थ दे सकता हूं, जबकि अंडरलाइन प्रकार, आप पूर्णांक में बने रहने के लिए निरंतर हो सकते हैं।
@@ -136,4 +136,3 @@ C++ में प्रोग्रामिंग के मॉड्यूल(
...
@@ -136,4 +136,3 @@ C++ में प्रोग्रामिंग के मॉड्यूल(
हमने समझाया है कि ऑपरेटरों को ओवरलोड(overload) करना क्यों महत्वपूर्ण है और हमने वैश्विक फ़ंक्शन(function) का उपयोग करके और कक्षाओं (classes) के सदस्य कार्यों(member functions) का उपयोग करके ऑपरेटर(Operator) के ओवरलोडिंग(Overloading) की मूल विधि का चित्रण किया है।
हमने समझाया है कि ऑपरेटरों को ओवरलोड(overload) करना क्यों महत्वपूर्ण है और हमने वैश्विक फ़ंक्शन(function) का उपयोग करके और कक्षाओं (classes) के सदस्य कार्यों(member functions) का उपयोग करके ऑपरेटर(Operator) के ओवरलोडिंग(Overloading) की मूल विधि का चित्रण किया है।
इस प्रक्रिया में, हमने यह भी देखा कि आप ओवरलोडिंग(Overloading) के लिए एक फ्रेंड फंक्शन(friend function) का उपयोग कर सकते हैं जो हम अगले मॉड्यूल(Module) में करेंगे।
इस प्रक्रिया में, हमने यह भी देखा कि आप ओवरलोडिंग(Overloading) के लिए एक फ्रेंड फंक्शन(friend function) का उपयोग कर सकते हैं जो हम अगले मॉड्यूल(Module) में करेंगे।
इस मॉड्यूल(Module) में, हमारे पास समग्र रूप से द्विआधारी और अनारी ऑपरेटरों के लिए ओवरलोडिंग(Overloading) के मूल शब्दार्थ की रूपरेखा है।
इस मॉड्यूल(Module) में, हमारे पास समग्र रूप से द्विआधारी और अनारी ऑपरेटरों के लिए ओवरलोडिंग(Overloading) के मूल शब्दार्थ की रूपरेखा है।
उदाहरण के लिए, एक अच्छा व्यायाम एक जटिल प्रकार का निर्माण करने की कोशिश करना होगा जो पूर्ण रूप से सभी ऑपरेटरों का समर्थन करता है जो इंट(int) प्रकार का समर्थन करता है, और यह वास्तव में जटिल हो सकता है कुछ और ऑपरेटरों की आवश्यकता होगी जैसे कि आपको किसी जटिल के पूर्ण मूल्य को खोजने की आवश्यकता है संख्या, एक जटिल संख्या का मान, आपको एक जटिल संख्या के जटिल संयुग्म को खोजने की आवश्यकता है।
उदाहरण के लिए, एक अच्छा व्यायाम एक जटिल प्रकार का निर्माण करने की कोशिश करना होगा जो पूर्ण रूप से सभी ऑपरेटरों का समर्थन करता है जो इंट(int) प्रकार का समर्थन करता है, और यह वास्तव में जटिल हो सकता है कुछ और ऑपरेटरों की आवश्यकता होगी जैसे कि आपको किसी जटिल के पूर्ण मूल्य को खोजने की आवश्यकता है संख्या, एक जटिल संख्या का मान, आपको एक जटिल संख्या के जटिल संयुग्म को खोजने की आवश्यकता है।
इसलिए, आपको उचित ऑपरेटरों की पहचान करनी होगी और उन्हें अधिभारित करना होगा।
इसलिए, आपको उचित ऑपरेटरों की पहचान करनी होगी और उन्हें अधिभारित करना होगा।
और उस प्रक्रिया में आपको एक पूर्ण जटिल प्रकार होना चाहिए जो आपके इंट(int) प्रकार के समान व्यवहार करेगा और आप अपने जटिल प्रकार के मूल्यों और चर के भावों को लिखने में सक्षम होंगे जैसा कि आप अंतर प्रकार के मामले में करते हैं।
और उस प्रक्रिया में आपको एक पूर्ण जटिल प्रकार होना चाहिए जो आपके इंट(int) प्रकार के समान व्यवहार करेगा और आप अपने जटिल प्रकार के मूल्यों और चर के भावों को लिखने में सक्षम होंगे जैसा कि आप अंतर प्रकार के मामले में करते हैं।
इसलिए इस मॉड्यूल(module) में, हमने C और C ++ के बीच के बुनियादी अंतर को समझने की कोशिश की है; आप इनपुट(input) आउटपुट(output) कैसे करते हैं? आप चर कैसे घोषित करते हैं? और C ++ में C और C ++ के मानक लाइब्ररी(library) का उपयोग कैसे किया जाता है? हमने यह देखना शुरू कर दिया है कि C ++ हमें और अधिक लचीलापन देता है कि हम कैसे घोषित कर सकते हैं और हम इनपुट(input) आउटपुट(output) कैसे कर सकते हैं।
इसलिए इस मॉड्यूल(module) में, हमने C और C ++ के बीच के बुनियादी अंतर को समझने की कोशिश की है; आप इनपुट(input) आउटपुट(output) कैसे करते हैं? आप चर कैसे घोषित करते हैं? और C ++ में C और C ++ के मानक लाइब्ररी(library) का उपयोग कैसे किया जाता है? हमने यह देखना शुरू कर दिया है कि C ++ हमें और अधिक लचीलापन देता है कि हम कैसे घोषित कर सकते हैं और हम इनपुट(input) आउटपुट(output) कैसे कर सकते हैं।
अब, हमें उन जटिल प्रिंटफ(printf) स्टेटमेंट्स, स्ट्रीम प्रिंटफ(printf) फ़ंक्शन(function) कॉल की आवश्यकता नहीं है जहां प्रारूप अलग स्ट्रिंग्स(strings) में हैं, चर अलग-अलग सूचीबद्ध हैं।
अब, हमें उन जटिल प्रिंटफ(printf) स्टेटमेंट्स, स्ट्रीम प्रिंटफ(printf) फ़ंक्शन(function) कॉल की आवश्यकता नहीं है जहां प्रारूप अलग स्ट्रिंग्स(strings) में हैं, चर अलग-अलग सूचीबद्ध हैं।
हमें यह याद रखने की आवश्यकता नहीं है कि स्कैनफ(scanf) को चर और इसी तरह के पते की जरूरत है और इस तरह से सी ++ में कई निर्माण और कार्यों को सरल बनाया गया है, जो प्रोग्रामिंग(programming) को बढ़ाने में मदद करेगा।
हमें यह याद रखने की आवश्यकता नहीं है कि स्कैनफ(scanf) को चर और इसी तरह के पते की जरूरत है और इस तरह से सी ++ में कई निर्माण और कार्यों को सरल बनाया गया है, जो प्रोग्रामिंग(programming) को बढ़ाने में मदद करेगा।
में प्रोग्रामिंग(programming) हम मॉड्यूल(module) 01 पर जारी रखेंगे।
C.++ में प्रोग्रामिंग(programming) हम मॉड्यूल(module) 01 पर जारी रखेंगे।
C. का पुनर्पूंजीकरण यह तीसरा भाग है।
C. का पुनर्पूंजीकरण यह तीसरा भाग है।
पहले दो भागों में हमने डेटा(data) प्रकार, चर(variables), भाव, कथन के बारे में बात की है।
पहले दो भागों में हमने डेटा(data) प्रकार, चर(variables), भाव, कथन के बारे में बात की है।
और, दूसरे भाग में हमने विभिन्न व्युत्पन्न प्रकारों(derived types), सरणियों, स्ट्रक्चर(structure), संघ और पोइंटर(pointer) के बारे में बात की है।
और, दूसरे भाग में हमने विभिन्न व्युत्पन्न प्रकारों(derived types), सरणियों, स्ट्रक्चर(structure), संघ और पोइंटर(pointer) के बारे में बात की है।
...
@@ -266,4 +266,3 @@
...
@@ -266,4 +266,3 @@
लेकिन, इस मॉड्यूल(module) के साथ हम उम्मीद करेंगे कि यह C का एक स्तर है जिसे आप C ++ भाषा प्रशिक्षण के साथ आगे बढ़ने में सक्षम होने के लिए तैयार हैं।
लेकिन, इस मॉड्यूल(module) के साथ हम उम्मीद करेंगे कि यह C का एक स्तर है जिसे आप C ++ भाषा प्रशिक्षण के साथ आगे बढ़ने में सक्षम होने के लिए तैयार हैं।
हम यहां मॉड्यूल(module) को बंद कर देंगे।
हम यहां मॉड्यूल(module) को बंद कर देंगे।
मॉड्यूल(module) दो बाद में, हम आपको दिखाना शुरू कर देंगे कि C ++ में कैसे कुछ सामान्य उदाहरण हैं जो हमने यहां देखे हैं या C में कुछ अन्य सामान्य उदाहरण अधिक कुशलतापूर्वक, प्रभावी ढंग से और C ++ में अधिक मजबूत तरीके से किए जा सकते हैं।
मॉड्यूल(module) दो बाद में, हम आपको दिखाना शुरू कर देंगे कि C ++ में कैसे कुछ सामान्य उदाहरण हैं जो हमने यहां देखे हैं या C में कुछ अन्य सामान्य उदाहरण अधिक कुशलतापूर्वक, प्रभावी ढंग से और C ++ में अधिक मजबूत तरीके से किए जा सकते हैं।
इसलिए, अपने नियंत्रण प्रवाह को प्राप्त करने के लिए अलग-अलग loop या switch स्टेटमेंट के साथ केवल ‘continue’और ‘break’ का उपयोग करने का प्रयास करें, लेकिन आपको फ़ंक्शन से लौटने के लिए ‘return’ की आवश्यकता होगी।
इसलिए, अपने नियंत्रण प्रवाह को प्राप्त करने के लिए अलग-अलग loop या switch स्टेटमेंट के साथ केवल ‘continue’और ‘break’ का उपयोग करने का प्रयास करें, लेकिन आपको फ़ंक्शन से लौटने के लिए ‘return’ की आवश्यकता होगी।
तो, ये चार प्रकार के के नियंत्रण निर्माण (control construct) हैं जो मौजूद हैं।
तो, ये चार प्रकार के के नियंत्रण निर्माण (control construct) हैं जो मौजूद हैं।
हमने इस मॉड्यूल में अब तक देखा है, कि C प्रोग्राम के मूल घटक क्या हैं, जैसे आप IO कैसे करते हैं, आप डेटा type का उपयोग करते हुए variable कैसे परिभाषित करते हैं? आप उन्हें कैसे initialize करते हैं? ऑपरेटरों का उपयोग करके उन्हें expression कैसे बनाया जाए? program के प्रवाह को नियंत्रित करने के लिए expression को statement और विभिन्न नियंत्रण प्रवाह statement में कैसे परिवर्तित किया जाए? तो इसके साथ, हम इस भाग को समाप्त करेंगे और इसके बाद हम derived types और उनके C में उपयोग करने के बारे में बात करेंगे।
हमने इस मॉड्यूल में अब तक देखा है, कि C प्रोग्राम के मूल घटक क्या हैं, जैसे आप IO कैसे करते हैं, आप डेटा type का उपयोग करते हुए variable कैसे परिभाषित करते हैं? आप उन्हें कैसे initialize करते हैं? ऑपरेटरों का उपयोग करके उन्हें expression कैसे बनाया जाए? program के प्रवाह को नियंत्रित करने के लिए expression को statement और विभिन्न नियंत्रण प्रवाह statement में कैसे परिवर्तित किया जाए? तो इसके साथ, हम इस भाग को समाप्त करेंगे और इसके बाद हम derived types और उनके C में उपयोग करने के बारे में बात करेंगे।
इसके साथ, रिकैप के इस हिस्से में, हमने मुख्य रूप से विभिन्न व्युत्पन्न प्रकारों(derived types) के बारे में बात की है।
इसके साथ, रिकैप के इस हिस्से में, हमने मुख्य रूप से विभिन्न व्युत्पन्न प्रकारों(derived types) के बारे में बात की है।
सबसे पहले, हमने कंटेनरों, सरणियों(arrays), स्ट्रक्चरस(structures) और यूनियनों के बारे में बात की है; सी प्रदान करने वाले तीन मुख्य प्रकार के कंटेनर(container); और हमने पोइंटरस(pointers) के माध्यम से विभिन्न चर(variables) और पतों को प्रबंधित करने की बात की है।
सबसे पहले, हमने कंटेनरों, सरणियों(arrays), स्ट्रक्चरस(structures) और यूनियनों के बारे में बात की है; सी प्रदान करने वाले तीन मुख्य प्रकार के कंटेनर(container); और हमने पोइंटरस(pointers) के माध्यम से विभिन्न चर(variables) और पतों को प्रबंधित करने की बात की है।
@@ -187,4 +187,3 @@ C++ में प्रोग्रामिंग(programming) में मॉ
...
@@ -187,4 +187,3 @@ C++ में प्रोग्रामिंग(programming) में मॉ
इसलिए, इस मॉड्यूल(module) 7 में, हमने C ++ में संदर्भ(reference) की अवधारणा को पेश किया है और हमने मूल्य द्वारा कॉल और संदर्भ(reference) द्वारा कॉल के बीच के अंतर का अध्ययन किया है।
इसलिए, इस मॉड्यूल(module) 7 में, हमने C ++ में संदर्भ(reference) की अवधारणा को पेश किया है और हमने मूल्य द्वारा कॉल और संदर्भ(reference) द्वारा कॉल के बीच के अंतर का अध्ययन किया है।
हमने संदर्भ(reference) द्वारा वापसी की अवधारणा भी पेश की है और दो तंत्रों के बीच के अंतर का अध्ययन किया है।
हमने संदर्भ(reference) द्वारा वापसी की अवधारणा भी पेश की है और दो तंत्रों के बीच के अंतर का अध्ययन किया है।
हमने कुछ दिलचस्प नुकसान, चालें, मुश्किल हालात दिखाए हैं जो इससे उत्पन्न हो सकते हैं और हमने संदर्भ(reference) और संकेत के बीच अंतर के बारे में चर्चा की है।
हमने कुछ दिलचस्प नुकसान, चालें, मुश्किल हालात दिखाए हैं जो इससे उत्पन्न हो सकते हैं और हमने संदर्भ(reference) और संकेत के बीच अंतर के बारे में चर्चा की है।
कोई फर्क नहीं पड़ता कि हम किस प्रकार के कंटेनर और डेटा का उपयोग कर रहे हैं, हम दिखाएंगे कि, यह कई अन्य एल्गोरिदम के लिए भी सही है, जिन्हें हमें उपयोग करने की आवश्यकता है, जिसमें मर्ज, स्वैप, हटाना, ये सभी अलग-अलग हैं।
कोई फर्क नहीं पड़ता कि हम किस प्रकार के कंटेनर और डेटा का उपयोग कर रहे हैं, हम दिखाएंगे कि, यह कई अन्य एल्गोरिदम के लिए भी सही है, जिन्हें हमें उपयोग करने की आवश्यकता है, जिसमें मर्ज, स्वैप, हटाना, ये सभी अलग-अलग हैं।
और, मैं आपको इन एल्गोरिथम घटकों का अध्ययन करने और उनका उपयोग शुरू करने के लिए प्रोत्साहित करूंगा।
और, मैं आपको इन एल्गोरिथम घटकों का अध्ययन करने और उनका उपयोग शुरू करने के लिए प्रोत्साहित करूंगा।
और फिर पूरी चीज़ की सुंदरता है, आपको वास्तव में बहुत सी सी + जानने की आवश्यकता नहीं है, क्योंकि उनका उपयोग करने में सक्षम होना चाहिए, क्योंकि उनका उपयोग उनके डिजाइन और जिस तरह से वे संगठित हैं, वह काफी सहज है और आप बस मैनुअल से अध्ययन कर सकते हैं और उनका उपयोग करना शुरू करें।
और फिर पूरी चीज़ की सुंदरता है, आपको वास्तव में बहुत सी सी + जानने की आवश्यकता नहीं है, क्योंकि उनका उपयोग करने में सक्षम होना चाहिए, क्योंकि उनका उपयोग उनके डिजाइन और जिस तरह से वे संगठित हैं, वह काफी सहज है और आप बस मैनुअल से अध्ययन कर सकते हैं और उनका उपयोग करना शुरू करें।
@@ -49,7 +49,8 @@ C ++ में प्रोग्रामिंग(programming) के मॉ
...
@@ -49,7 +49,8 @@ C ++ में प्रोग्रामिंग(programming) के मॉ
इसलिए, यदि यह शून्य से 1 है, तो हम नामित करते हैं कि स्टैक(stack) खाली है।
इसलिए, यदि यह शून्य से 1 है, तो हम नामित करते हैं कि स्टैक(stack) खाली है।
शीर्ष बस शीर्ष पॉज़िटि से तत्व देता हैपर; पुश(push) शीर्ष स्थिति को बढ़ाता है और नए तत्व को देता है जिसे स्टैक(stack) पर स्टैक(stack) में जोड़ा जाता है और पॉप बस शीर्ष बिंदु पर या शीर्ष सूचकांक को घटाता है।
शीर्ष बस शीर्ष पॉज़िटि से तत्व देता हैपर; पुश(push) शीर्ष स्थिति को बढ़ाता है और नए तत्व को देता है जिसे स्टैक(stack) पर स्टैक(stack) में जोड़ा जाता है और पॉप बस शीर्ष बिंदु पर या शीर्ष सूचकांक को घटाता है।
इसलिए, जिस तत्व को सबसे ऊपर माना जाता था, उसे अब तक सबसे ऊपर नहीं माना जाता है, इसके ठीक नीचे के तत्व को सबसे ऊपर माना जाता है और चूंकि हम इस ऑपरेशन को नहीं कर सकते हैं यदि स्टैक(stack) पहले से ही खाली है, तो यह जांचना अच्छा होगा कि क्या नीचे है? इससे पहले कि हम वास्तव में पॉप ऑपरेशन करें, स्टैक(stack) खाली है।
इसलिए, जिस तत्व को सबसे ऊपर माना जाता था, उसे अब तक सबसे ऊपर नहीं माना जाता है, इसके ठीक नीचे के तत्व को सबसे ऊपर माना जाता है और चूंकि हम इस ऑपरेशन को नहीं कर सकते हैं यदि स्टैक(stack) पहले से ही खाली है, तो यह जांचना अच्छा होगा कि क्या नीचे है? इससे पहले कि हम वास्तव में पॉप ऑपरेशन करें, स्टैक(stack) खाली है।
अब, यह है; हम सभी यह जानते हैं कि यदि आप यहाँ एक स्ट्रिंग(string) A B C D E का उपयोग कर रहे हैं, तो हम बस एक लूप में जा सकते हैं, इन सभी वर्णों A B C D और E को जोड़ लें, एक के बाद एक स्टैक(stack) में और फिर यदि हम शीर्ष का पता लगाते रहें तत्व और उस शीर्ष तत्व को पॉप करने पर निश्चित रूप से E अंतिम जोड़ा गया है।
अब, यह है; हम सभी यह जानते हैं कि यदि आप यहाँ एक स्ट्रिंग(string) A B C D E का उपयोग कर रहे हैं, तो हम बस एक लूप में जा सकते हैं, इन सभी वर्णों A B C D और E को जोड़ लें,
एक के बाद एक स्टैक(stack) में और फिर यदि हम शीर्ष का पता लगाते रहें तत्व और उस शीर्ष तत्व को पॉप करने पर निश्चित रूप से E अंतिम जोड़ा गया है।
तो, वह पहले बाहर आ जाएगा, उससे ठीक पहले डी को जोड़ा गया है, इसलिए यह अगले बाहर आ जाएगा और इसके परिणामस्वरूप हमें वह स्ट्रिंग(string) मिलेगी जो हम यहां दिखा रहे हैं, जो EDCBA है और हम सभी इससे परिचित हैं।
तो, वह पहले बाहर आ जाएगा, उससे ठीक पहले डी को जोड़ा गया है, इसलिए यह अगले बाहर आ जाएगा और इसके परिणामस्वरूप हमें वह स्ट्रिंग(string) मिलेगी जो हम यहां दिखा रहे हैं, जो EDCBA है और हम सभी इससे परिचित हैं।
तो, यह तरीका है यदि आपको रिवर्स स्ट्रिंग(string) प्रोग्राम करना है, तो न केवल यह है कि आपको यह मुख्य फ़ंक्शन(function) या फ़ंक्शन(function) लिखना है जो स्ट्रिंग(string) को रिवर्स करने के लिए स्टैक(stack) का उपयोग करता है, आपको दिए गए कोड को भी लिखना होगा।
तो, यह तरीका है यदि आपको रिवर्स स्ट्रिंग(string) प्रोग्राम करना है, तो न केवल यह है कि आपको यह मुख्य फ़ंक्शन(function) या फ़ंक्शन(function) लिखना है जो स्ट्रिंग(string) को रिवर्स करने के लिए स्टैक(stack) का उपयोग करता है, आपको दिए गए कोड को भी लिखना होगा।
बाएं स्तंभ पर जो C में परिदृश्य है एक समान परिदृश्य पोस्टफिक्स(postfix) अभिव्यक्ति का मूल्यांकन करने के लिए दिया गया है, फिर से C बाएं कॉलम में पिछले उदाहरण के समान है, जहां स्टैक(stack) का कार्यान्वयन दिया गया है और सही कॉलम पर हम दिखाते हैं कि हम इसका उपयोग वास्तव में पोस्टफिक्स(postfix) मूल्यांकन के लिए कैसे कर सकते हैं।
बाएं स्तंभ पर जो C में परिदृश्य है एक समान परिदृश्य पोस्टफिक्स(postfix) अभिव्यक्ति का मूल्यांकन करने के लिए दिया गया है, फिर से C बाएं कॉलम में पिछले उदाहरण के समान है, जहां स्टैक(stack) का कार्यान्वयन दिया गया है और सही कॉलम पर हम दिखाते हैं कि हम इसका उपयोग वास्तव में पोस्टफिक्स(postfix) मूल्यांकन के लिए कैसे कर सकते हैं।
...
@@ -93,4 +94,3 @@ C ++ में प्रोग्रामिंग(programming) के मॉ
...
@@ -93,4 +94,3 @@ C ++ में प्रोग्रामिंग(programming) के मॉ
सूचि; एकल लिंक की गई सूची, नक्शा, जो नाम मान जोड़ी की तरह है; सेट, जहां ऑर्डर देना महत्वपूर्ण नहीं है, आप बस उस में यूनियन चौराहा कर सकते हैं।
सूचि; एकल लिंक की गई सूची, नक्शा, जो नाम मान जोड़ी की तरह है; सेट, जहां ऑर्डर देना महत्वपूर्ण नहीं है, आप बस उस में यूनियन चौराहा कर सकते हैं।
ये सभी डेटा(data) संरचनाएं C ++ मानक लाइब्ररी(library) में रेडीमेड उपलब्ध हैं।
ये सभी डेटा(data) संरचनाएं C ++ मानक लाइब्ररी(library) में रेडीमेड उपलब्ध हैं।
इसलिए, जैसा कि हम प्रोग्रामिंग(programming) भाषा की विस्तृत बारीकियों को समझने से पहले ही C ++ में प्रोग्रामिंग(programming) शुरू कर देते हैं, हम बार-बार C ++ मानक लाइब्ररी(library) पर एक नज़र डालना चाहते हैं और इन सभी डेटा(data) संरचनाओं का उपयोग करने वाले प्रोग्राम लिखते हैं और हमारी प्रोग्रामिंग(programming) को आसान बनाते हैं और अधिक मजबूत उपयोग करने के लिए।
इसलिए, जैसा कि हम प्रोग्रामिंग(programming) भाषा की विस्तृत बारीकियों को समझने से पहले ही C ++ में प्रोग्रामिंग(programming) शुरू कर देते हैं, हम बार-बार C ++ मानक लाइब्ररी(library) पर एक नज़र डालना चाहते हैं और इन सभी डेटा(data) संरचनाओं का उपयोग करने वाले प्रोग्राम लिखते हैं और हमारी प्रोग्रामिंग(programming) को आसान बनाते हैं और अधिक मजबूत उपयोग करने के लिए।
@@ -183,4 +183,3 @@ C ++ में प्रोग्रामिंग(Programming) के मॉ
...
@@ -183,4 +183,3 @@ C ++ में प्रोग्रामिंग(Programming) के मॉ
तो, यह एक सरल तरीका है कि अगर आप स्थैतिक डेटा मेंबर्स(Static Data Members) और स्टेटिक(static) सदस्य कार्यों का उपयोग करते हैं, तो सिंगलटन(singleton) को बहुत सुरक्षित रूप से लागू किया जा सकता है।
तो, यह एक सरल तरीका है कि अगर आप स्थैतिक डेटा मेंबर्स(Static Data Members) और स्टेटिक(static) सदस्य कार्यों का उपयोग करते हैं, तो सिंगलटन(singleton) को बहुत सुरक्षित रूप से लागू किया जा सकता है।
मैंने इसे एक प्रिंटर(printer) क्लास(class) के साथ दिखाया है, लेकिन यह किसी अन्य क्लास(class) के साथ किया जा सकता है, जिसे सिंगलटन(singleton) की आवश्यकता है।
मैंने इसे एक प्रिंटर(printer) क्लास(class) के साथ दिखाया है, लेकिन यह किसी अन्य क्लास(class) के साथ किया जा सकता है, जिसे सिंगलटन(singleton) की आवश्यकता है।
तो, सारांश में, हमने स्थैतिक डेटा मेंबर्स(Static Data Members) और स्टेटिक(static) सदस्य फ़ंक्शन(member function) को पेश किया है, और हमने दिखाया है कि उनका उपयोग कक्षा स्तर पर किसी भी डेटा को बनाए रखने के लिए और विशेष रूप से सिंगलटन(singleton) ऑब्जेक्ट(object) बनाने के लिए ऑब्जेक्ट(object)ओं की गिनती के विभिन्न उद्देश्यों के लिए किया जा सकता है।
तो, सारांश में, हमने स्थैतिक डेटा मेंबर्स(Static Data Members) और स्टेटिक(static) सदस्य फ़ंक्शन(member function) को पेश किया है, और हमने दिखाया है कि उनका उपयोग कक्षा स्तर पर किसी भी डेटा को बनाए रखने के लिए और विशेष रूप से सिंगलटन(singleton) ऑब्जेक्ट(object) बनाने के लिए ऑब्जेक्ट(object)ओं की गिनती के विभिन्न उद्देश्यों के लिए किया जा सकता है।
@@ -133,4 +133,3 @@ C ++ में प्रोग्रामिंग(Programming) के मॉ
...
@@ -133,4 +133,3 @@ C ++ में प्रोग्रामिंग(Programming) के मॉ
यह सिर्फ उदाहरण के साथ दिखाता है कि आपका बाध्य सेट डेटा(data) प्रकार कैसे काम करेगा।
यह सिर्फ उदाहरण के साथ दिखाता है कि आपका बाध्य सेट डेटा(data) प्रकार कैसे काम करेगा।
संक्षेप में, हमने C ++ में टेम्पलेट(template) पेश किए हैं और हमने चर्चा की है कि क्लास टेम्पलेट(template) में डेटा(data) संरचना का एक सामान्य समाधान है।
संक्षेप में, हमने C ++ में टेम्पलेट(template) पेश किए हैं और हमने चर्चा की है कि क्लास टेम्पलेट(template) में डेटा(data) संरचना का एक सामान्य समाधान है।
फ़ंक्शन(funnction) टेम्पलेट(template) के साथ संयुक्त यह हमें जेनेरिक प्रोग्रामिंग(Programming), मेटा प्रोग्रामिंग(Programming) कोड(code) लिखने में सक्षम होने के मामले में एक प्रमुख लाभ देता है और एक मानक टेम्पलेट(template) लाइब्रेरी या सी ++ के एसटीएल के रूप में जाना जाता है की एक नींव देता है।
फ़ंक्शन(funnction) टेम्पलेट(template) के साथ संयुक्त यह हमें जेनेरिक प्रोग्रामिंग(Programming), मेटा प्रोग्रामिंग(Programming) कोड(code) लिखने में सक्षम होने के मामले में एक प्रमुख लाभ देता है और एक मानक टेम्पलेट(template) लाइब्रेरी या सी ++ के एसटीएल के रूप में जाना जाता है की एक नींव देता है।
और विशेष रूप से समझाया गया कास्ट(cast) ऑपरेटर्स(operators), कास्ट(cast) ऑपरेटर(operator) की एक बुनियादी संरचना और कई उदाहरणों में सी-स्टाइल कास्टिंग(casting) की बुराइयों पर चर्चा करते हैं।
और विशेष रूप से समझाया गया कास्ट(cast) ऑपरेटर्स(operators), कास्ट(cast) ऑपरेटर(operator) की एक बुनियादी संरचना और कई उदाहरणों में सी-स्टाइल कास्टिंग(casting) की बुराइयों पर चर्चा करते हैं।
और विशेष रूप से, हमने कास्ट(cast) कास्ट(cast) ऑपरेटर(operator) पर एक नज़र डाली है।
और विशेष रूप से, हमने कास्ट(cast) कास्ट(cast) ऑपरेटर(operator) पर एक नज़र डाली है।
अगले मॉड्यूल(module) में, हम अन्य कलाकारों को काम में लेंगे और आगे बढ़ेंगे।
अगले मॉड्यूल(module) में, हम अन्य कलाकारों को काम में लेंगे और आगे बढ़ेंगे।
@@ -192,4 +192,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
...
@@ -192,4 +192,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
यदि आपको पुनर्व्याख्या की आवश्यकता है, तो दूसरी नज़र डालें कि डिज़ाइन में कुछ लकुना होना चाहिए, ताकि आपको डिज़ाइन बदलने की आवश्यकता हो, आप पाएंगे कि आप अन्य तीन प्रकार के कास्ट(cast) ऑपरेटरों के साथ प्रबंधन कर पाएंगे।
यदि आपको पुनर्व्याख्या की आवश्यकता है, तो दूसरी नज़र डालें कि डिज़ाइन में कुछ लकुना होना चाहिए, ताकि आपको डिज़ाइन बदलने की आवश्यकता हो, आप पाएंगे कि आप अन्य तीन प्रकार के कास्ट(cast) ऑपरेटरों के साथ प्रबंधन कर पाएंगे।
इसलिए, संक्षेप में, हमने C ++ में टाइप(type) कास्टिंग(casting) की चर्चा जारी रखी है।
इसलिए, संक्षेप में, हमने C ++ में टाइप(type) कास्टिंग(casting) की चर्चा जारी रखी है।
और विशेष रूप से, हमने इस मॉड्यूल(module) में स्थिर कास्ट और पुनर्व्याख्या कलाकारों का अध्ययन किया है।
और विशेष रूप से, हमने इस मॉड्यूल(module) में स्थिर कास्ट और पुनर्व्याख्या कलाकारों का अध्ययन किया है।
@@ -191,4 +191,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
...
@@ -191,4 +191,3 @@ C ++ में प्रोग्रामिंग के मॉड्यूल
और हमने दिखाया है कि वे कास्ट(cast) कास्ट(cast) के चार संचालक हैं, स्टैटिक(static) कास्ट(cast), पुनर्व्याख्या कास्ट(cast) और डायनामिक(dynamic) कास्ट(cast) आपके किसी भी कास्ट(cast) रिक्वायरमेंट को हल करने के लिए पर्याप्त हैं।
और हमने दिखाया है कि वे कास्ट(cast) कास्ट(cast) के चार संचालक हैं, स्टैटिक(static) कास्ट(cast), पुनर्व्याख्या कास्ट(cast) और डायनामिक(dynamic) कास्ट(cast) आपके किसी भी कास्ट(cast) रिक्वायरमेंट को हल करने के लिए पर्याप्त हैं।
और इसके साथ ही आपको कम से कम करना चाहिए; वास्तव में मैं आपको सलाह दूंगा कि आप अपने कोड में सी स्टाइल कास्टिंग(casting) के किसी भी उपयोग को पूरी तरह से हटा दें, बस इन कास्टिंग(casting) पर भरोसा करें।
और इसके साथ ही आपको कम से कम करना चाहिए; वास्तव में मैं आपको सलाह दूंगा कि आप अपने कोड में सी स्टाइल कास्टिंग(casting) के किसी भी उपयोग को पूरी तरह से हटा दें, बस इन कास्टिंग(casting) पर भरोसा करें।
मुख्य रूप से, जब आप एक बहुरूपी पदानुक्रम(hierarchy) पर होते हैं, तो स्थैतिक कास्टिंग(casting) और कास्ट(cast) कास्ट(cast) ऑपरेटर, और डाइनैमिक(dynamic) कास्टिंग(casting) पर भरोसा करते हैं।
मुख्य रूप से, जब आप एक बहुरूपी पदानुक्रम(hierarchy) पर होते हैं, तो स्थैतिक कास्टिंग(casting) और कास्ट(cast) कास्ट(cast) ऑपरेटर, और डाइनैमिक(dynamic) कास्टिंग(casting) पर भरोसा करते हैं।
@@ -164,4 +164,3 @@ C++ में प्रोग्रामिंग के मॉड्यूल(
...
@@ -164,4 +164,3 @@ C++ में प्रोग्रामिंग के मॉड्यूल(
तो कृपया इस पर काम करें, कृपया इस निर्माण को बहुत ध्यान से समझने की कोशिश करें और इस स्रोत अभिव्यक्ति के माध्यम से काम करें और जहाँ आप स्थैतिक बाध्यकारी हैं और जहाँ आपके पास डायनामिक(dynamic) बंधन है, की संकलित अभिव्यक्ति के विरुद्ध, ताकि आप इसे भी समझ पाएँगे।
तो कृपया इस पर काम करें, कृपया इस निर्माण को बहुत ध्यान से समझने की कोशिश करें और इस स्रोत अभिव्यक्ति के माध्यम से काम करें और जहाँ आप स्थैतिक बाध्यकारी हैं और जहाँ आपके पास डायनामिक(dynamic) बंधन है, की संकलित अभिव्यक्ति के विरुद्ध, ताकि आप इसे भी समझ पाएँगे।
कर्मचारियों के वेतन आवेदन के लिए इसका लाभ और अभिनव समाधान को संक्षेप में प्रस्तुत करने के लिए जो सी में फ़ंक्शन(function) पॉइंटर्स(pointers) का उपयोग करता है हमने यह बताने के लिए नींव रखी है कि वर्चुअल(virtual) फ़ंक्शन(function) पॉइंटर(pointer) टेबल(table) का उपयोग करके वर्चुअल(virtual) फ़ंक्शन(function) कैसे कार्यान्वित किए जाते हैं।
कर्मचारियों के वेतन आवेदन के लिए इसका लाभ और अभिनव समाधान को संक्षेप में प्रस्तुत करने के लिए जो सी में फ़ंक्शन(function) पॉइंटर्स(pointers) का उपयोग करता है हमने यह बताने के लिए नींव रखी है कि वर्चुअल(virtual) फ़ंक्शन(function) पॉइंटर(pointer) टेबल(table) का उपयोग करके वर्चुअल(virtual) फ़ंक्शन(function) कैसे कार्यान्वित किए जाते हैं।
कृपया इसे और अधिक स्पष्ट रूप से समझने की कोशिश करें ताकि डायनामिक(dynamic) प्रेषण के बारे में कोई भ्रम आपके दिमाग में स्पष्ट हो।
कृपया इसे और अधिक स्पष्ट रूप से समझने की कोशिश करें ताकि डायनामिक(dynamic) प्रेषण के बारे में कोई भ्रम आपके दिमाग में स्पष्ट हो।
इसलिए, फ्रेंड(friend) एक शक्तिशाली विशेषता है और किसी भी शक्तिशाली विशेषता की तरह, किसी भी शक्तिशाली हथियार की तरह इसे बहुत सावधानी से और विवेक से इस्तेमाल किया जाना चाहिए।
इसलिए, फ्रेंड(friend) एक शक्तिशाली विशेषता है और किसी भी शक्तिशाली विशेषता की तरह, किसी भी शक्तिशाली हथियार की तरह इसे बहुत सावधानी से और विवेक से इस्तेमाल किया जाना चाहिए।
इस मॉड्यूल(module) में संक्षेप में हमने फ्रेंड फंक्शन(friend function) की धारणा और फ्रेंड क्लास(friend class) की धारणा को पेश किया है और हमने मैट्रिक्स(matrix) फंक्शन(function) और रिस्क हेरफेर के उदाहरणों के साथ फ्रेंड फंक्शन(friend function) और फ्रेंड क्लास(friend Class) का अध्ययन किया है, और हम विशेष रूप से उल्लेख किया है कि दोस्त एक अलग तरह की दृश्यता है और कुछ हद तक खतरनाक है, इसका उपयोग करने के लिए कुछ जोखिम भरा है क्योंकि यह मनमाने ढंग से इनकैप्सुलेशन(encapsulation) को तोड़ सकता है और इसलिए दोस्त का उपयोग उचित डिजाइन औचित्य के साथ डिजाइन के बहुत ही विवेकपूर्ण विकल्प के साथ किया जाना चाहिए कि यह विराम क्यों है की आवश्यकता है।
इस मॉड्यूल(module) में संक्षेप में हमने फ्रेंड फंक्शन(friend function) की धारणा और फ्रेंड क्लास(friend class) की धारणा को पेश किया है और हमने मैट्रिक्स(matrix) फंक्शन(function) और रिस्क हेरफेर के उदाहरणों के साथ फ्रेंड फंक्शन(friend function) और फ्रेंड क्लास(friend Class) का अध्ययन किया है, और हम विशेष रूप से उल्लेख किया है कि दोस्त एक अलग तरह की दृश्यता है और कुछ हद तक खतरनाक है, इसका उपयोग करने के लिए कुछ जोखिम भरा है क्योंकि यह मनमाने ढंग से इनकैप्सुलेशन(encapsulation) को तोड़ सकता है और इसलिए दोस्त का उपयोग उचित डिजाइन औचित्य के साथ डिजाइन के बहुत ही विवेकपूर्ण विकल्प के साथ किया जाना चाहिए कि यह विराम क्यों है की आवश्यकता है।
जैसा कि आप आगे बढ़ते हैं और बहुत सारे डिजाइन और कार्यान्वयन करना शुरू करते हैं, हम उस तरह के लगभग हमेशा पाएंगे कि आपको एक फ्रेंड(friend) का उपयोग करने की आवश्यकता है यह उन तीन स्थितियों में से एक होगा जिसकी मैंने यहां चर्चा की है, और यदि आप पाते हैं कि आपको एक की आवश्यकता है फ्रेंड फंक्शन(friend function) या फ्रेंड क्लास(friend Class) ऐसी स्थिति में इस्तेमाल किया जाना चाहिए, जो उन तीनों की तरह नहीं है, जिनकी हमने चर्चा की है, तो आपको बहुत सतर्क और सावधान रहना चाहिए और वास्तव में खुद को समझाना चाहिए कि यह एक ऐसी स्थिति है, जिसके लिए फ्रेंड(friend) का इस्तेमाल करने की जरूरत है।
जैसा कि आप आगे बढ़ते हैं और बहुत सारे डिजाइन और कार्यान्वयन करना शुरू करते हैं, हम उस तरह के लगभग हमेशा पाएंगे कि आपको एक फ्रेंड(friend) का उपयोग करने की आवश्यकता है यह उन तीन स्थितियों में से एक होगा जिसकी मैंने यहां चर्चा की है, और यदि आप पाते हैं कि आपको एक की आवश्यकता है फ्रेंड फंक्शन(friend function) या फ्रेंड क्लास(friend Class) ऐसी स्थिति में इस्तेमाल किया जाना चाहिए, जो उन तीनों की तरह नहीं है, जिनकी हमने चर्चा की है, तो आपको बहुत सतर्क और सावधान रहना चाहिए और वास्तव में खुद को समझाना चाहिए कि यह एक ऐसी स्थिति है, जिसके लिए फ्रेंड(friend) का इस्तेमाल करने की जरूरत है।
క్లాస్ బి ఈ స్టేట్మెంట్, కానీ ఎ బి యొక్క స్నేహితుడు అనే వాస్తవం బి యొక్క స్నేహితుడు అని అర్ధం కాదు, కనుక ఇది ప్రయాణ సంబంధ సంబంధం కాదు.
అదేవిధంగా, నేను B యొక్క స్నేహితుడిగా A కలిగి ఉంటే, B ఈ చతురస్రాల నుండి C యొక్క స్నేహితుడు, అంటే A C యొక్క స్నేహితుడు (స్నేహితుడు) అని అర్ధం కాదు, అందువల్ల అంటువ్యాధి పనిచేయదు.
స్నేహం కేవలం బైనరీ, కేవలం రెండు తరగతుల మధ్య పని చేయండి మరియు తదుపరి అనుమానం సాధ్యం కాదు.
ఇప్పుడు ఇలా చెప్తున్నప్పుడు, ఫ్రెండ్ ఫంక్షన్ మరియు ఫ్రెండ్ క్లాస్ యొక్క ఈ ఫ్రెండ్ ఫీచర్ వాస్తవానికి భాష యొక్క ఎన్కప్సులేషన్ మరియు దృశ్యమాన నిర్మాణాన్ని మారుస్తుందని దయచేసి గమనించండి.
ఇప్పటివరకు మనకు మూడు రకాల దృశ్యమానత ఉంది, వాటిలో రెండు మేము ఇప్పటికే ప్రభుత్వ మరియు ప్రైవేటులో చర్చించాము, వారసత్వానికి వర్తించే రక్షిత దృశ్యమానతను త్వరలో చర్చిస్తాము.
స్నేహితుడు C ++ లో ఉన్న నాల్గవ రకమైన దృశ్యమానత, ఇక్కడ మీరు కొన్ని ఇతర తరగతులను ప్రత్యేకంగా ఒక తరగతిని సృష్టించవచ్చు, మరికొందరు సభ్యులు స్నేహితుడిగా పని చేస్తారు మరియు ఈ దృశ్యమానతను అందిస్తారు. ఇది పరిమితం చేయబడింది, అయితే ఇక్కడ ఎన్కప్సులేషన్ పూర్తిగా పంక్చర్ చేయబడాలి .
కాబట్టి, మీరు స్నేహితుడిని చేసేది ఇదే, చాలా న్యాయంగా చేయాలి ఎందుకంటే మీరు ఏకపక్షంగా మరొక తరగతి మరియు ఇతర ఫంక్షన్ చేస్తే, గ్లోబల్ ఫంక్షన్ లేదా సభ్యుడు ఫంక్షన్ ఫ్రెండ్. అప్పుడు డేటాను ఉపయోగించడం మరియు తగిన వాటి ద్వారా వాటిని యాక్సెస్ చేయడం వల్ల మీ ప్రయోజనాలన్నీ సభ్యుల ఫంక్షన్ల ఎంపిక పోతుంది.
అందువల్ల, స్నేహితుడు (స్నేహితుడు) ఉపయోగం నిజంగా సహాయపడే సాధారణ పరిస్థితులను ఇక్కడ ఉంచడానికి మేము ప్రయత్నించాము.
మొదటిది మీకు రెండు స్వతంత్ర తరగతులు ఉన్న మాతృక రకం వెక్టర్, కానీ మీకు ఒక కార్యాచరణ ఉంది, ఇక్కడ డేటా సభ్యుడు, రెండు తరగతుల ప్రైవేట్ సభ్యుడు, వెక్టార్తో మాతృక. గుణకారం (మాతృక) విషయంలో పాల్గొనండి.
లేదా జాబితాలోని వివిధ నోడ్ నోడ్ల యొక్క వస్తువుల జాబితా వంటి మరొక తరగతి పైన ఒక తరగతి యొక్క రూపకల్పనలో ఒక తరగతి సృష్టించబడుతున్న పరిస్థితి మీకు ఉంది. మీరు ఒక నోడ్ను ఉపయోగిస్తే జాబితా కార్యాచరణ మీరు జాబితాను దాని స్నేహితుడిగా (నోడ్) ప్రకటిస్తే ఖచ్చితంగా అమలు చేయడం చాలా సులభం అవుతుంది, తద్వారా ఇది జాబితా యొక్క మొత్తం లోపలి భాగంలో చూడవచ్చు.
ఇది మరొక పరిస్థితి.
మూడవది, మేము ఇంకా చర్చించలేదు, కాని నేను ఆపరేటర్లను వారి ఆపరేటర్లలో కొంతమందితో ఓవర్లోడ్ చేయడానికి ప్రయత్నించినప్పుడు, సరైన సింటాక్స్ మరియు సెమాంటిక్స్తో ఓవర్లోడ్ చేయడం చాలా కష్టం, మనకు ఫ్రెండ్ (ఫ్రెండ్) రకం కార్యాచరణ ఉంటే C ++ లో అందుబాటులో లేదు.
నిర్దిష్ట వినియోగదారు నిర్వచించిన తరగతుల కోసం మీరు వాటిని ఓవర్లోడ్ చేసినప్పుడు అవుట్పుట్ స్ట్రీమింగ్ ఆపరేటర్ల పరంగా మేము చూపిస్తాము, కాని సాధారణంగా మీరు స్నేహితుడు (స్నేహితుడు) ఫంక్షన్ మరియు ఫ్రెండ్ క్లాస్ని ఉపయోగించాల్సి ఉంటుంది. కేసు చాలా జాగ్రత్తగా ఉండాలి, పరిమితం మరియు సంప్రదాయవాదంగా ఉండాలి మీకు ఈ విభిన్న పరిస్థితులలో ఒకటి ఉందని మీరు నిజంగా నిర్ధారించుకోవాలి మరియు ఇది వాస్తవానికి జరిగే కొన్ని సంబంధిత పరిస్థితులలో ఒకటి కావచ్చు, లేకపోతే మీరు స్నేహితుడిగా (స్నేహితుడు) లక్షణంగా లేదా తరగతి స్నేహితుడిగా పనిచేస్తే డిజైన్ను సత్వరమార్గం చేయండి, మీరు అసలు వస్తువు క్రింద ఉన్న ఎన్క్యాప్సులేషన్ను విచ్ఛిన్నం చేస్తున్నారు, ఓరియంటెడ్ ఫ్రేమ్వర్క్కు వ్యతిరేకంగా వెళ్తాము, ఇది యాక్సెస్ స్పెసిఫైయర్ యొక్క నిర్వచనం మరియు వస్తువుల సృష్టి ద్వారా మేము చాలా జాగ్రత్తగా నిర్మిస్తున్నాము.
అందువల్ల, స్నేహితుడు (స్నేహితుడు) ఒక శక్తివంతమైన లక్షణం మరియు ఏదైనా శక్తివంతమైన ఆయుధం వలె, ఏదైనా శక్తివంతమైన ఆయుధం వలె, దీనిని చాలా జాగ్రత్తగా మరియు న్యాయంగా ఉపయోగించాలి.
ఈ మాడ్యూల్లో, మేము ఫ్రెండ్ ఫంక్షన్ మరియు ఫ్రెండ్ క్లాస్ అనే భావనను క్లుప్తంగా పరిచయం చేసాము మరియు మాతృక ఫంక్షన్ మరియు రిస్క్ మానిప్యులేషన్ ఉదాహరణలతో ఫ్రెండ్ ఫంక్షన్ () యొక్క ఫంక్షన్ను పరిచయం చేసాము. ఫ్రెండ్ ఫంక్షన్) మరియు ఫ్రెండ్ క్లాస్, మరియు ఫ్రెండ్ అని మేము ప్రత్యేకంగా పేర్కొన్నాము వేరొక రకమైన దృశ్యమానత మరియు కొంత ప్రమాదకరమైనది, ఇది ఏకపక్షంగా ఉన్నందున ఉపయోగించటానికి ప్రమాదకరమైనది, ఈ పద్ధతి ఎన్క్యాప్సులేషన్ను విచ్ఛిన్నం చేస్తుంది మరియు అందువల్ల స్నేహితుడిని చాలా వివేకవంతమైన డిజైన్తో సరైన డిజైన్ సమర్థనతో ఉపయోగించాలి, ఎందుకు విచ్ఛిన్నం కావాలి అనే దానిపై.
మీరు ముందుకు వెళ్లి, చాలా రూపకల్పన మరియు అమలు చేయడం ప్రారంభించినప్పుడు, మీరు స్నేహితుడిని ఉపయోగించాల్సిన రకాన్ని మేము ఎల్లప్పుడూ కనుగొంటాము.నేను ఇక్కడ చర్చించిన మూడు పరిస్థితులలో ఇది ఒకటి అవుతుంది, మరియు మీరు కనుగొంటే ఒకటి కావాలి, మేము చర్చించిన మూడు మాదిరిగా లేని పరిస్థితిలో ఫ్రెండ్ ఫంక్షన్ లేదా ఫ్రెండ్ క్లాస్ వాడాలి, అప్పుడు మీరు చాలా జాగ్రత్తగా మరియు జాగ్రత్తగా ఉండాలి మరియు ఇది ఒక స్నేహితుడు ఉపయోగించాల్సిన పరిస్థితి అని తనను తాను ఒప్పించుకోవాలి .
ఆపరేటర్లు మరియు ఫంక్షన్ల మధ్య సారూప్యతలు మరియు వ్యత్యాసాలను మేము చూశాము మరియు C ++ లో, ఆపరేటర్ ఫంక్షన్లను నిర్వచించడానికి మరియు ఓవర్లోడ్ చేయడానికి ఫీచర్లు ఎలా అందించబడ్డాయో చూశాము మరియు దీనికి అదనంగా, ఆపరేటర్ ప్లస్ ఓవర్లోడ్ చేయడానికి మునుపటి విభాగంలో మాకు రెండు ఉదాహరణలు ఉన్నాయి (ఆపరేటర్ +) స్ట్రింగ్ రకం కోసం మేము రెండు తీగలను నిర్వచించాము మరియు సంక్షిప్తీకరించాము.మరియు రకాలు కోసం క్లోజ్డ్ యాడ్ ఆపరేషన్ ఎలా చేయవచ్చో చూపించడానికి, ఆపరేటర్ను వేరే రకం సందర్భంలో అదనపు రకంతో ఓవర్లోడ్ చేసాము.
ఇప్పుడు, మేము ముందుకు వెళ్లి, ఓవర్లోడ్ చేయగల దాని గురించి మరియు మీరు మీ స్వంత రకాన్ని, ఏ రకమైన ఆపరేటర్ను ఓవర్లోడ్ చేయవచ్చో నిర్వచిస్తుంటే ఎలా మరియు ఏమి జరుగుతుందో గురించి మరింత తెలుసుకుంటాము మరియు మీరు దీన్ని ఎలా చేయగలరు? ఏమి సాధ్యమవుతుంది? సాధ్యం కాదు సలహా మరియు మొదలైనవి ఏమిటి? అందువల్ల, నేను ఇక్కడ నిబంధనల సారాంశాన్ని ప్రదర్శిస్తున్నాను.
వాటిని చాలా జాగ్రత్తగా చూద్దాం.
మొదట సహజంగా; మేము మీ మొదటి ప్రశ్నను ఓవర్లోడ్ చేయవలసి వస్తే - ఓవర్లోడ్ చేయగల ఆపరేటర్ ఏది? ఖచ్చితంగా, C ++ లో చాలా మంది ఆపరేటర్లు ఉన్నారు; ప్లస్, మైనస్, డివిజన్, గుణకారం, అసైన్మెంట్, అసైన్మెంట్ల యొక్క వివిధ రకాల పొడిగింపులు, ఇవన్నీ ఉన్నాయి.
కాబట్టి, మీరు క్రొత్త ఆపరేటర్ చిహ్నాన్ని నిర్వచించి దాన్ని ఓవర్లోడ్ చేయగలరా? మీకు ప్రశ్న ఉంటే, సమాధానం లేదు; మీరు సిస్టమ్లో నిర్వచించిన ఆపరేటర్ల సమితికి మాత్రమే మిమ్మల్ని పరిమితం చేయాలి.
ఉదాహరణకు, నాకు ఓవర్లోడింగ్ ఉందని మీరు చెప్పలేరు; ఈ ఆపరేటర్ చెప్పడానికి లేదా నాకు ఈ ఆపరేటర్ ఉంటుంది.
వాస్తవానికి, మీలో కొందరు పాస్కల్లో పాత ప్రోగ్రామర్లు, ఇది పాస్కల్లో అసమానత అని మీరు గుర్తిస్తారు, అయితే ఇది సి ++ లో నిర్వచించబడిన చిహ్నం కాదు.
అందువల్ల, మీరు కొత్త చిహ్నాలతో ఆపరేటర్లను ఓవర్లోడ్ చేయలేరు.
మీరు ఆపరేటర్ను ఓవర్లోడ్ చేసినప్పుడు చాలా ముఖ్యమైన రెండవ విషయం; మీరు దాని అంతర్గత లక్షణాలను మార్చలేరు.
అంతర్గత లక్షణాలు ఒకే విధంగా ఉండాలి మరియు ఆపరేటర్ కోసం 3 అంతర్గత లక్షణాలు ఉన్నాయి; ఒక సంఖ్య ఉందా, దీనికి అనేక రకాల ఆపరేషన్లు ఉన్నాయి, ఇతర ఆపరేటర్లు మరియు సహకార సంస్థలకు సంబంధించి వారి ఆపరేటర్ల సమూహానికి లేదా ఇలాంటి ఆపరేషన్ల ఆపరేటర్లకు సంబంధించి ప్రాధాన్యత.
ఈ 3 అంతర్గత లక్షణాలను మార్చలేము.
కాబట్టి, మీరు వాదించినట్లయితే, నాకు ఆపరేటర్ ప్లస్ ఉంది, దీనిని ఇలా వ్రాయవచ్చు లేదా దీన్ని ఇలా వ్రాయవచ్చు.
నాకు ఆపరేటర్ మైనస్ ఉంది, దీనిని ఇలా వ్రాయవచ్చు, దీనిని ఇలా వ్రాయవచ్చు.
కాబట్టి, ఇది ఇక్కడ ఉందని అర్థం, అరిటీ 2, ఇక్కడ అరిటీ 1, కానీ అలాంటి మార్పులు మాత్రమే మీరు మీరే చేయలేరు.
ఆపరేటర్ కోసం బహుళ సంస్కరణలు ఉంటే మరియు వేర్వేరు పూర్వీకులు మరియు సానుభూతులు ఒకే విధంగా నిర్వచించబడితే, మీరు దాని ద్వారా వెళ్ళాలి, కానీ మీరు చేయలేరు; ఆపరేటర్లు ఎవరూ దాని స్వచ్ఛత ప్రాధాన్యత మరియు సానుభూతిని నిర్వచించరు లేదా మార్చరు.
కాబట్టి, అంతర్గత లక్షణాలను పూర్తిగా గౌరవించాలి.
మూడవది జాబితా; C ++ లో సాధారణంగా ఉపయోగించే 38 ఆపరేటర్లు ఇవి ఓవర్లోడ్ చేయగలవు.
కాబట్టి, మీరు ప్రాథమిక అంకగణిత ఆపరేటర్ మరియు మొత్తం అసైన్మెంట్ ఆపరేటర్తో సహా మీరు ఆలోచించగలిగే దాదాపు అన్ని ఆపరేటర్లను కలిగి ఉన్నారని మీరు చూడవచ్చు, అప్పుడు మీ షిఫ్ట్ ఆపరేటర్, మీ లాజికల్ ఆపరేటర్, మీ పాయింటర్ రిఫరెన్సింగ్ ఆపరేటర్, మీ అర్రే ఆపరేటర్, మీ ఫంక్షన్ ఆపరేటర్ మరియు కాబట్టి.
కాబట్టి, ఇవన్నీ ఓవర్లోడ్ చేయవచ్చు.
మీకు యూనిరీ ఆపరేటర్ ఉంటే, మీకు తెలిసినట్లుగా రెండు రకాల యూనిరీ ఆపరేటర్లు, ఒపెరాండ్కు ముందు ఉన్న ఉపసర్గ ఆపరేటర్. ఉన్నారా, ఇది ఇలా ఉంటుంది; వీరంతా ఉపసర్గ ఆపరేటర్లు లేదా వారు పోస్ట్ ఫిక్స్ రకానికి చెందినవారు కావచ్చు.
కాబట్టి, ప్రశ్న ప్రత్యేకంగా అదే ఆపరేటర్, మీరు ++ చూస్తే, నేను a++ వ్రాయగలను లేదా నేను a++ వ్రాయగలను.
ప్రశ్న సహజంగా ఒక ఆపరేటర్ మరియు తరువాత ఆపరేటర్ ఫంక్షన్ మధ్య కరస్పాండెన్స్ ఇవ్వబడుతుంది, ఆపరేటర్ ఆపరేటర్ ఫంక్షన్ (ఫంక్షన్) ఆపరేటర్ ఆపరేటర్కు మాత్రమే ఆపరేటర్ ఆపరేటర్ అని మేము చెప్పాము.
కాబట్టి, ఇది ఆపరేటర్ చిహ్నం తరువాత ఆపరేటర్ చిహ్నం.
కాబట్టి, ఈ రెండు తప్పనిసరిగా ఒకే ఆపరేటర్ పేరును కలిగి ఉంటాయి.
కాబట్టి, మీ ప్రశ్న ఉంటుంది, కానీ అవి వేర్వేరు ఆపరేటర్లు, ఉపసర్గ మరియు పోస్ట్ పరిష్కారాలు వేర్వేరు ఆపరేటర్లు, ప్రీ-ఇంక్రిమెంట్ మరియు పోస్ట్-ఇంక్రిమెంట్ వేర్వేరు ప్రవర్తన.
కాబట్టి, మేము దానిని ఎలా వేరు చేస్తాము? కాబట్టి, ఈ రెండు పాయింట్లలో మీరు అప్రెంటిస్ ఆపరేటర్ ఉపసర్గ అయితే, ఈ విధంగా మీరు దీనిని వ్రాస్తే, సంతకం ఇలా కనిపిస్తుంది, ఇది మీ రకానికి భిన్నంగా ఉంటుంది మరియు ఇది వస్తుంది ఇంక్రిమెంట్ తర్వాత తీసుకున్న ఒపెరాండ్కు తిరిగి వెళ్ళు.
అయితే, ఈ పోస్ట్ ఫిక్స్ ఆపరేటర్ అయితే, ఆసక్తికరమైన విషయం ఏమిటంటే, మీరు ఒక పూర్ణాంకానికి మరొక పరామితిగా పేర్కొనాలి మరియు ఈ పూర్ణాంకానికి నిజంగా క్రియాశీల పరామితి కాదు.
మీరు నిజంగా టిని ఇన్వోక్ చేసినప్పుడు, అది ఆపరేటర్. మీరు పాస్ చేయబోతున్నారనే ఉద్దేశ్యం లేదు, అది కేవలం సంతకంలో ఉంది.
ఆపరేటర్ ఆపరేటర్ యొక్క ఈ ఉదాహరణ పోస్ట్ ఫిక్స్ రకం కోసం కాదా మరియు ఉపసర్గ రకం కాదా అని కంపైలర్ నిర్ణయించడంలో ఇది సహాయపడుతుంది.
కాబట్టి, నేను ++ వ్రాస్తే అది చెడుగా కనిపిస్తుంది.
నేను ++ a వ్రాస్తే, ఇది ఇలా అనిపిస్తుంది.
సర్చార్జ్ కోసం ఉపసర్గ మరియు పోస్ట్ యునరీ ఆపరేటర్లను పరిష్కరించడానికి ఇది ప్రాథమిక విధానం.
తరువాత, స్కోప్ రిజల్యూషన్ ఆపరేటర్ లాగా ఓవర్లోడ్ చేయడానికి అనుమతించని కొన్ని ఆపరేటర్లు ఉన్నారని దయచేసి గమనించండి, ఉదాహరణకు, సభ్యుని ఉపయోగించడం వంటివి, ఉదాహరణకు, మనకు ఒక నిర్మాణం ఉంటే, కాబట్టి మేము Ri మరియు Im తో సంక్లిష్ట నిర్మాణాన్ని భాగాలుగా చూశాము.
కాబట్టి, నేను నిర్మాణానికి పేరు పెట్టవచ్చు మరియు చుక్కను ఉంచగలను.
కాబట్టి, ఇది నిర్మాణం యొక్క పున-భాగం.
అందువల్ల, సభ్యుల ప్రాప్యత ఓవర్లోడ్ చేయబడదు.
ఏదైనా వేరియబుల్ లేదా రకం యొక్క బైట్ల సంఖ్యను కనుగొనడానికి పరిమాణాన్ని ఓవర్లోడ్ చేయలేము; టెర్నరీ ఆపరేటర్ను ఓవర్లోడ్ చేయలేము మరియు మొదలైనవి.
తార్కిక మరియు తార్కిక లేదా కామాలతో ఓవర్లోడ్ చేయడానికి అనుమతించబడిన కొన్ని ఆపరేటర్లు ఉన్నారు. అయితే మీరు వాటిని ఓవర్లోడ్ చేస్తే, వాటి ప్రాథమిక లక్షణాలు, కొన్ని అదనపు లక్షణాలు నాశనం అవుతాయని మీరు గుర్తుంచుకోవాలి.
ఇది ఆంపర్సండ్ 'లాజికల్' మరియు 'నేను ఈ వ్యక్తీకరణను వ్రాస్తే (a = = b && b = = c), ఇది తార్కికం మరియు దాని ప్రవర్తన ఏమిటంటే వ్యక్తీకరణ యొక్క ఈ భాగం కనుగొనబడితే అది అబద్ధం. కనుక ఇది లేదు రెండవ భాగాన్ని అంచనా వేయండి.
వ్యక్తీకరణ యొక్క ఈ భాగం తప్పుగా ఉంటే, అది రెండవ భాగాన్ని అంచనా వేయదు, మీరు వాదన యొక్క ఖచ్చితత్వాన్ని చూస్తున్నారా.
A కి సమానం కాకపోతే; a మరియు b భిన్నంగా ఉంటాయి, అప్పుడు b కి సమానమైనది తప్పు మరియు ఒకసారి అది అబద్ధం అవుతుంది, ఎందుకంటే ఇది ఒక AND ఆపరేషన్ మరియు b యొక్క నిజం లేదా పురాణం c కి సమానంగా ఉందా, రెండవ భాగం నిజం లేదా రెండవ భాగం తప్పుడు, ఈ మొత్తం వ్యక్తీకరణ ఏమైనప్పటికీ తప్పు అవుతుంది.
కాబట్టి, ఈ విధంగా కేవలం ఒక భాగాన్ని మూల్యాంకనం చేయడం మరియు మరొకటి మూల్యాంకనం చేయకపోవడం మూల్యాంకనంలో షార్ట్ సర్క్యూట్ అని పిలుస్తారు మరియు ఇది క్రమం చేయడం ద్వారా జరుగుతుంది, ఎందుకంటే మీరు వాటిని ఏ క్రమంలో అంచనా వేస్తారో మీరు నిర్ణయించుకోవాలి. మేము చేస్తాము.
ఇవి ఈ ఆపరేటర్ యొక్క ప్రత్యేక ప్రవర్తనలు.
అందువల్ల, మీరు ఆ ప్రవర్తనలను ఓవర్లోడ్ చేస్తే, మీరు కోల్పోతారు, ఓవర్లోడ్ అయిన తర్వాత మీరు ఆ ప్రవర్తనలను cannot హించలేరని మీరు జాగ్రత్తగా ఉండాలి.
చివరగా, మీరు పాయింటర్ పరోక్ష ఆపరేటర్ను ఓవర్లోడ్ చేస్తే, ఆ ఆపరేటర్ మరొక పాయింటర్ను తిరిగి ఇవ్వాలి, లేదా అది నేరుగా పాయింటర్.
ఈ విషయాన్ని గమనించండి, ఈ దశలో అర్థం చేసుకోవడం అంత సులభం కాదు.
మేము ఈ ఆపరేటర్ గురించి ఏదో ఒక సమయంలో మాట్లాడుతాము, ముఖ్యంగా ఓవర్లోడింగ్, ఇది భాషతో సంబంధం లేకుండా C ++ ప్రోగ్రామింగ్ యొక్క చాలా బలమైన లక్షణం.
దీన్ని స్మార్ట్ పాయింటర్లు మరియు ఉపయోగించేవారు అంటారు.
అందువల్ల, మీరు ఈ ఆపరేటర్ను ఓవర్లోడ్ చేస్తుంటే, మీరు తప్పక పాయింటర్ లేదా మరలా పాయింటర్గా మారవచ్చు.
ఓవర్లోడింగ్ యొక్క ప్రాథమిక నియమాలు ఇవి.
కాబట్టి, దీని తరువాత మీరు మీ ఆపరేటర్లకు రాయడం ప్రారంభించవచ్చు మరియు నేను స్ట్రింగ్ మరియు ఎనుమ్ రూపంలో ఉదాహరణలను చూపించాను, మీరు నిజంగా నియమాలను ఖచ్చితంగా పాటించాలి, కానీ అవి చాలా సౌకర్యవంతంగా మరియు సూటిగా ముందుకు ఉంటాయి మరియు నేను ఇక్కడ చర్చించిన ఉదాహరణలను తీసుకుంటాను.
మీరు మీ స్వంత రకాలుగా ఎక్కువ వ్రాయగలరు, పూర్తి సంక్లిష్ట రకాలను వ్రాయడం మంచిది, ఇక్కడ మీరు ఇతర ఆపరేటర్లను నెమ్మదిగా ఓవర్లోడ్ చేయవచ్చు మరియు సంక్లిష్ట సంఖ్యలను ఒకేసారి పూర్ణాంకాలుగా పరిగణించవచ్చు.
కింది స్లైడ్లలో, నేను వివరించను, నేను చెప్పినట్లుగా ఓవర్లోడ్ అవ్వడానికి అనుమతించని ఆపరేటర్లను అణిచివేసేందుకు ప్రయత్నించాను మరియు నేను ఒక కారణాన్ని అందించడానికి ప్రయత్నించాను. మీకు మాత్రమే కాదు; టెర్నరీ ఆపరేటర్ను ఓవర్లోడ్ చేయడానికి ఎందుకు అనుమతించబడలేదని లేదా ఆకార-రకం ఆపరేటర్ను ఓవర్లోడ్ చేయడానికి ఎందుకు అనుమతించలేదని మేము గుర్తుంచుకోవాల్సిన అవసరం లేదు, మీరు వాస్తవానికి కారణాన్ని అర్థం చేసుకోవచ్చు మరియు మీరు గుర్తుంచుకోవడం సులభం అవుతుంది.
అందువల్ల, ఇది ఓవర్లోడింగ్ (ఓవర్లోడింగ్), ఓవర్లోడింగ్ (ఓవర్లోడింగ్) ఆపివేయబడిన జాబితా మరియు ఆపరేటర్లు ఎక్కడ ఉన్నారు, ఓవర్లోడింగ్ వాస్తవానికి అనుమతించబడే చోట నేను క్లుప్తంగా చర్చించిన మరొక జాబితా, కానీ మీరు వాటిని ఓవర్లోడ్ చేయవద్దని సలహా ఇస్తారు ఎందుకంటే మీరు వాటిని ఓవర్లోడ్ చేస్తే కొన్ని C ++ ప్రోగ్రామ్ల యొక్క ప్రాథమిక ప్రవర్తన మారుతుంది.
కాబట్టి, వీటిని నిజంగా నిపుణులచే ఓవర్లోడ్ చేయాలి మరియు మీరు ఆ స్థాయికి చేరుకునే వరకు, దాన్ని ఓవర్లోడ్ చేయవద్దని నేను మీకు సలహా ఇస్తాను.
మీ వద్ద ఉన్న మిగిలిన 38 ఆపరేటర్లు ఏ రకమైన మాతృకను అభివృద్ధి చేయగలిగేంత గొప్పవి, ఏ రకమైన మాతృక, సంక్లిష్టమైనవి, మీకు కావలసిన మాతృకలను విభజించడం.
దీనితో మేము ఈ మాడ్యూల్కు దగ్గరగా వస్తాము, ఇక్కడ, మేము ఆపరేటర్ను ఓవర్లోడింగ్కు పరిచయం చేసాము మరియు ఆపరేటర్ ఓవర్లోడింగ్ కోసం వివిధ నియమాలు మరియు మినహాయింపులను వివరించాము.
మరియు తరువాతి మాడ్యూల్లో, మాడ్యూల్ 10 లో, డైనమిక్ మెమరీ నిర్వహణ పరంగా మరొక ప్రత్యేక విస్తరణ కేసు మరియు ఆపరేటర్ ఓవర్లోడ్ యొక్క ప్రత్యేక కేసును చూపిస్తాము.
మేము C ++ డైనమిక్ మెమరీ నిర్వహణ కోసం అందించే ఆపరేటర్లను పరిచయం చేస్తాము మరియు డైనమిక్ మెమరీ మేనేజ్మెంట్ ఆపరేటర్ల సందర్భంలో ఆపరేటర్ ఓవర్లోడింగ్ ఎలా అమలు చేయవచ్చో మేము మళ్ళీ చూపిస్తాము, C ++ లో మెమరీ నిర్వహణలో పలు రకాల బలమైన ప్రయోజనాలను చూడండి.
ఇక్కడ నేను ఒక కోడ్ను ఇచ్చాను, మీరు పేస్ట్ను కాపీ చేసి, సెట్ జంపింగ్ జంప్ యొక్క ఈ ప్రవర్తనను ప్రయత్నించవచ్చు.
అలాగే, ఆపరేటింగ్ సిస్టమ్కి సంబంధించి ప్రజలు కొన్ని ప్రోగ్రామింగ్ చేశారని మీకు సంకేతాలు ఉన్నాయి, సిగ్నల్ పంపే విధానం ఉందని వారికి తెలుస్తుంది.
ఈ సిగ్నల్ డాట్ హెచ్ లో ఉందని మీరు ఒక సిగ్నల్ పంపవచ్చు మరియు అనుబంధిత హ్యాండ్లర్ ఉంది, ఇది మీరు చొప్పించగల మీ ఫంక్షన్ పాయింటర్.
అందువల్ల, సిగ్నల్ హ్యాండ్లర్లు అలాంటివి.
కాబట్టి, మీరు హ్యాండ్లర్ను నిర్వచించవచ్చు మరియు మీరు భిన్నంగా సూచించవచ్చు.
అలా చెప్పే వివిధ సిగ్నల్స్ కోసం మీరు వేర్వేరు హ్యాండ్లర్లను జోడించవచ్చు.
నేను SIGABRT కలిగి ఉంటే, అది అమలు చేయబడే ఈ ప్రత్యేకమైన సిగ్నల్ హ్యాండ్లర్, ఇన్వాయిస్ పొందండి, తద్వారా ప్రాథమిక సిగ్నలింగ్ విధానం ఉంటుంది మరియు మీరు ఆపివేయాలని నిర్ణయించుకోవచ్చు.
అందువల్ల, ఇది సి లో లభించే మరొక యంత్రాంగం. అందువల్ల, సి నాకు అందించినట్లు మేము చూశాము, ఎందుకంటే సి రూపకల్పన రూపకల్పనలో మినహాయింపు యొక్క స్థితిని పరిగణనలోకి తీసుకోదు, లోపాలను పరిగణనలోకి తీసుకుంటుంది., ఇది ఎక్కువగా a ఆలోచన తర్వాత పోస్ట్.
కాబట్టి, ప్రామాణిక గ్రంథాలయాలు మరియు వాటి యొక్క వైవిధ్యాల ద్వారా అనేక రకాల యంత్రాంగాలు ప్లగ్ చేయబడ్డాయి, కానీ వాటిలో ఏవీ మీకు స్వచ్ఛమైన పరిష్కారాన్ని ఇవ్వవు మరియు ఇవి సి లో లోపం నిర్వహణ యొక్క కొన్ని సూక్ష్మ దృష్టాంతాలు.
మీరు హాజరైనప్పుడు, మీరు ప్రోగ్రామ్ నుండి నిష్క్రమించినప్పుడు, ప్రోగ్రామ్ను ముగించడానికి నిష్క్రమణ ఆధారంగా ఇప్పటికే స్కోప్ ఉంది, ప్రస్తుతం వివిధ స్థానిక స్కోప్లు నాలోని వస్తువులను నాశనం చేసేవారు నాశనం చేయబడరు, కాబట్టి ఇది మాకు ఉన్న ప్రధాన వనరుల లీకేజీ సమస్య.
రిటర్న్ వాల్యూ లేదా గ్లోబల్ ఫలితాలను చాలా కోడ్ అయోమయంతో ప్రశ్నించడం ఖచ్చితంగా అసహ్యకరమైనది, ఎందుకంటే ఇది సాధారణ ఫంక్షన్ సెమాంటిక్స్ను పాడు చేస్తుంది, ఎందుకంటే సాధారణ సెమాంటిక్స్ ఏమీ ఇవ్వదు.
కానీ లోపాన్ని దృష్టిలో ఉంచుకోవడానికి, మేము ఏదో ఒకటి ఉంచాలి మరియు ఈ స్థితిని ఖచ్చితంగా పొందాలి, మీరు హెడర్లో లోపాన్ని ఎలా నిర్వహిస్తారు, ఉదాహరణకు, మీరు పైభాగాన్ని గుర్తుంచుకుంటారు.
కాబట్టి, శీర్ష శీర్షం పూర్ణాంక స్టాక్గా భావించబడుతుంది, కాబట్టి శీర్షం మీకు పూర్ణాంకాన్ని తిరిగి ఇవ్వాలి.
అందువల్ల, ఇది ఫంక్షన్ సంతకం అయితే, మీకు లోపం విలువ లేనందున మీరు లోపాన్ని ఎలా తిరిగి ఇస్తారు.
అందువల్ల, మీరు పునరావృత కాల్లో ఉంటే జరగని అయోమయమైన గ్లోబల్ విలువను ఉపయోగించండి.
లేకపోతే, మీరు ఒక పరామితి గుండా వెళతారు, దీని ద్వారా మీరు వాస్తవానికి వంగని లోపం విలువను తిరిగి ఇస్తారు, ఇది మన వద్ద ఉన్న పద్ధతుల యొక్క అసలు సంతకాన్ని మారుస్తుంది.
మరియు అది లోపం లేని పరిస్థితులను భాష గ్రహించలేదు మరియు కోర్ యొక్క భాగం కాదు.
అందువల్ల, సి లోని లోపాన్ని పరిష్కరించడంలో ఇవి కొన్ని ప్రధాన ఇబ్బందులు.
వివిధ దశలలో లోపంతో వ్యవహరించే మీరందరూ కొన్ని లేదా అన్ని పద్ధతులను ఉపయోగించారని నాకు ఖచ్చితంగా తెలుసు, అయితే నేను మిమ్మల్ని దీని ద్వారా తీసుకెళ్లాలని అనుకున్నాను, అయితే ఇవన్నీ హైలైట్ చేయాలనుకుంటున్నాను లోపం పరిస్థితులతో తీవ్రమైన పరిస్థితులు.
సంక్షిప్తంగా, మేము మినహాయింపులు, రకాలు మరియు దశల యొక్క ప్రాథమిక భావన యొక్క భావనను ప్రవేశపెట్టాము మరియు సి లో లోపం నిర్వహణ గురించి చర్చించాము.
మేము వివిధ భాషా లక్షణాలను వివరించాము మరియు వాటిలో చాలా వరకు కాదు, మరియు దీని కోసం సి లో ఉన్న లైబ్రరీ మద్దతు, మరియు మేము దానిని ఉదాహరణలతో ప్రదర్శిస్తాము.
తదుపరి మాడ్యూల్లో, మేము C ++ లోని మినహాయింపుల మూలాన్ని పొందుతాము.
ఈ తరగతి లో, ఇచ్చిన తార్కిక పనితీరును తగ్గించటానికి కర్ణ్గ్ పటాలు లేదా K- పటాల వాడకాన్ని చూద్దాం.
మొదట, K- మ్యాప్ ఎలా నిర్మించబడిందో చూద్దాం; సంబంధిత K- మ్యాప్ నుండి లాజికల్ ఫంక్షన్ యొక్క కనిష్ట రూపాన్ని ఎలా వ్రాయాలో చూద్దాం.
చివరగా, తార్కిక ఫంక్షన్ యొక్క సత్య పట్టికలోని విలువలు పట్టించుకోని కొన్ని ఉదాహరణలను మేము తీసుకుంటాము.
ప్రారంభిద్దాం ఇప్పుడు మేము తార్కిక పనితీరును తగ్గించడానికి మరియు కర్నాగ్ మ్యాప్ను లేదా K- మ్యాప్ అని పిలిచే ఒక సరళమైన మార్గాన్ని చర్చిస్తాము.
K- మ్యాప్ అంటే ఏమిటి? ఇది తార్కిక ఫంక్షన్ యొక్క సత్య పట్టికను సూచిస్తుంది.
మరియు K- మ్యాప్ యొక్క అనేక ఉదాహరణలు మనం చూస్తాము.
K- మ్యాప్ ఒక ఫంక్షన్ యొక్క కనీస వ్యక్తీకరణను మొత్తం రూపం యొక్క ఉత్పత్తి లేదా మొత్తం ఉత్పత్తుల రూపంలో పొందటానికి ఉపయోగించవచ్చు.
ఇప్పుడు, మా కోర్సులో, మేము మొదటి 1 ఉత్పత్తుల మొత్తంతో ఎక్కువగా వ్యవహరిస్తాము, కానీ అది ఎలా జరుగుతుందో మీరు అర్థం చేసుకున్న తర్వాత, మీరు మొత్తం K- మ్యాప్ యొక్క ఉత్పత్తిని పొందుతారు. (మ్యాప్) కూడా సులభంగా తీసుకోవచ్చు.
మనల్ని మనం ప్రశ్నించుకోవలసిన ప్రశ్న; కనిష్ట వ్యక్తీకరణ అంటే ఏమిటి? సమాధానం ఇక్కడ ఇవ్వబడింది: కనిష్ట వ్యక్తీకరణగా కనిష్ట వ్యక్తీకరణ మరియు ప్రతి పదం కనీస సంఖ్య వేరియబుల్స్ కలిగి ఉంటుంది, కాబట్టి కనిష్టం దాని కనీస సంఖ్య. అర్థం.
ప్రతి తార్కిక ఫంక్షన్కు ప్రత్యేకమైన కనీస వ్యక్తీకరణ ఉందా అనేది తదుపరి ప్రశ్న.
సమాధానం ఎక్కువగా అవును, కానీ కొన్ని ఫంక్షన్ల కోసం, ఒకటి కంటే ఎక్కువ కనిష్ట వ్యక్తీకరణలను కలిగి ఉండటం సాధ్యమే.
ఇప్పుడు, మినిమల్ ఎక్స్ప్రెషన్పై మాకు ఆసక్తి ఉండటానికి ఇదే కారణం.
తక్కువ వ్యక్తీకరణలతో తక్కువ వ్యక్తీకరణను అమలు చేయవచ్చు మరియు అందుకే అమలు చౌకగా ఉంటుంది.
కాబట్టి, ఇప్పుడు K- మ్యాప్ యొక్క ఉదాహరణను చూద్దాం, ఒక తార్కిక ఫంక్షన్ Y మూడు వేరియబుల్స్ AB మరియు C ఉంది, మనకు 1 ఇక్కడ 1 1 1 ఉంది.
మరియు మనకు ఇక్కడ డోంట్ కేర్ కండిషన్ ఉంది, మరియు మిగిలిన ఎంట్రీలు 0 ..
కాబట్టి ఈ మ్యాప్ను గీయడం ప్రారంభిద్దాం మరియు దాని అర్థం ఏమిటో చూద్దాం.
ఇది సి, మరియు దీని అర్థం సి ఇక్కడ 0, సి ఇక్కడ 1.
ఇవి A మరియు B విలువలకు అనుగుణంగా ఉంటాయి; ఇక్కడ A 0, B 0, A 0, B 1, A 1, B 1, A 1, B 0.
తర్వాతి దశ ఈ పట్టిక నుండి ఈ తార్కిక ఫంక్షన్ Y ను మ్యాప్ చేయడం.
కాబట్టి, మేము దీన్ని చేస్తాము.
మేము ఇక్కడ 1 తో ప్రారంభిస్తాము.
ఈ ఎంట్రీ 0 0 కోసం A, B అంటే ఏమిటి? కాబట్టి ఈ కాలమ్ ఇక్కడ ఉంది.
1 అంటే సి అంటే ఏమిటి, కాబట్టి ఇది ఇక్కడ ఈ పంక్తి? కాబట్టి, మేము ఈ పెట్టె గురించి మాట్లాడుతున్నాము.
కాబట్టి, అలాంటిది, ఈ 1 ఆ పెట్టెలో వెళ్తుంది.
మరియు దీని గురించి, AB 0 1, కాబట్టి ఇది కాలమ్ మరియు C 0, కాబట్టి ఇది అడ్డు వరుస.
కాబట్టి, మేము ఈ పెట్టె గురించి మాట్లాడుతున్నాము.
ఈ X గురించి ఏమిటి, A B 1 0, ఈ కాలమ్ C 0, కాబట్టి ఇది అడ్డు వరుస.
కాబట్టి, మేము ఈ పెట్టె గురించి మాట్లాడుతున్నాము.
మరియు ఇక్కడ ఈ చివరిది A B 1 1 మరియు C 1, కాబట్టి ఇది కాలమ్ మరియు ఈ అడ్డు వరుస.
కాబట్టి, ఈ పెట్టెలు ఇక్కడ ఉన్నాయి.
ఇప్పుడు, ఇప్పటివరకు నింపని బాక్సుల గురించి, వారు ఈ 0 సెలను పొందుతారు; మరియు దీనితో మన పూర్తి K- మ్యాప్ ఇక్కడ చూపబడుతుంది.
ఇప్పుడు మనం కొన్ని పరిశీలనలు చేద్దాం.
మేము చూసినది ఏమిటంటే, K- మ్యాప్ సత్య పట్టికతో సమానంగా ఉంటుంది, ఇది ఎంట్రీలు అమర్చబడిన విధానానికి సమానమైన సమాచారాన్ని కలిగి ఉంటుంది.
రెండవది మరియు ఇది చాలా ముఖ్యమైన విషయం, మీరు ఈ పాయింట్ను కోల్పోకపోతే ఫలితాలు ఘోరమైనవి.
అందువల్ల, మేము దానిపై చాలా శ్రద్ధ వహించాలి.
K- మ్యాప్లో, ప్రక్కనే ఉన్న వరుసలు లేదా నిలువు వరుసలు ఒకే వేరియబుల్లో విభిన్నంగా ఉంటాయి.
ఉదాహరణకు, AB 0 కాలమ్ నుండి 1 కి సమానంగా వెళ్ళేటప్పుడు - ఇది 01 నుండి 1 1 కు సమానం, ఒకే మార్పు ఉంది మరియు ఈ మార్పు వేరియబుల్ A లో ఉంటుంది.
అదేవిధంగా, మేము 1 1 నుండి 1 0 కి వెళ్ళినప్పుడు, B లో ఒక మార్పు మాత్రమే ఉంటుంది.
ఇక్కడ నాలుగు వేరియబుల్స్ ఉన్న K- మ్యాప్ ఉంది.
కాబట్టి, A, B, C మరియు D ఫంక్షన్ Y మరియు అనుబంధ K- మ్యాప్ను కలిగి ఉంటాయి.
ఇది ఎలా పనిచేస్తుందో చూద్దాం.
ఈ విలువలు 0 0 0 1 1 1 మొదలైన వాటికి అనుగుణంగా ఉంటాయి. A మరియు B.
ఈ విలువలు సి మరియు డిలకు అనుగుణంగా ఉంటాయి మరియు మనం ఒక కాలమ్ నుండి మరొక కాలమ్కు వెళుతున్నప్పుడు, ఉదాహరణకు, ఒకే ఒక్క మార్పు మాత్రమే ఉందని, 0 0 నుండి 0 1 కు మార్చండి, బి వెళుతుంది, కానీ A లేదు 0 1 నుండి 1 1 కు మార్చండి, A కాని B కాదు.
అదేవిధంగా, మనం ఒక పంక్తి నుండి మరొక రేఖకు వెళుతున్నప్పుడు, 0 నుండి 0 కి 1 కి, D మార్పు 0 నుండి 1 కి మారుతుంది, కాని C కాదు.+
ఇప్పుడు ఈ ఫార్మాట్ నుండి కొన్ని ఎంట్రీలకు Y యొక్క మ్యాపింగ్ గురించి చూద్దాం.
ఉదాహరణకు, దీనిని పరిగణించండి.
A మరియు B - 0 0 అంటే ఏమిటి, C మరియు D - 0 1. కాబట్టి, మనకు A B - 0 0 మరియు C D - 0 1. కాబట్టి, మనకు ఈ కాలమ్ మరియు ఈ వరుస ఉంది మరియు అక్కడ 1 వెళ్తుంది.
ఉదాహరణకు ఈ X ను తీసుకుందాం, మనకు AB 0 1 కి సమానం, మరియు మనకు 0 1 కి సమానమైన CD ఉంది.
కాబట్టి, AB ఈ కాలమ్ 1 1 కి సమానం, మరియు CD ఈ అడ్డు వరుస 0 1 కి సమానం మరియు అందుకే X అక్కడ ఉంది, మొదలైనవి.
మీరు ఇతర ఎంట్రీలను కూడా తనిఖీ చేయవచ్చు.
ఫంక్షన్ల యొక్క కొన్ని ఉదాహరణలను ఒకే పదంతో చూద్దాం.
కాబట్టి, ఇది ఒకే ఉత్పత్తి పదం, ఇది A మరియు B, C బార్ మరియు D ఆపరేషన్ మరియు AND ఆపరేషన్.
మరియు అది 1 కి సమానంగా ఉన్నప్పుడు, 1 కి B 1 కు సమానం మరియు C D 0 కి సమానం, అప్పుడు ఈ 1 కనిపించే కాలమ్ మరియు అడ్డు వరుస.
X 2 అనే మరొక ఉత్పత్తి పదాన్ని పరిశీలిద్దాం, ఇప్పుడు ఈ పదానికి A, C మరియు D అనే మూడు వేరియబుల్స్ మాత్రమే ఉన్నాయి మరియు A 0 అయితే X 2, 1; అంటే, రెండు నిలువు వరుసలు ఎందుకంటే A ఇక్కడ 0, A కూడా ఇక్కడ 0, కాబట్టి ఇవి రెండు నిలువు వరుసలు.
మరియు C D అంటే ఏమిటి, C D 0 అవుతుంది. ఇది లైన్.
కాబట్టి, మనకు రెండు 1 లు ఉన్నాయి.
మరొక ఉదాహరణ తీసుకుందాం. A మరియు C X 3 కి సమానం ఇది మరొక ఉత్పత్తి పదం, ఒకే ఉత్పత్తి పదం.
X 3 ఎప్పుడు 1 కి సమానం? A 1 మరియు C 1 అయినప్పుడు; ఈ రెండు వరుసలలో A 1 మరియు ఈ రెండు వరుసలలో C 1, కాబట్టి మనకు ఇక్కడ నాలుగు 1 సె ఉన్నాయి.
ఇప్పుడు, మేము ఈ రకమైన ఫంక్షన్లకు సంబంధించిన కొన్ని పరిశీలనలు చేస్తాము, ఇక్కడ ఫంక్షన్ ఒకే ఉత్పత్తి పదం, కానీ వివిధ రకాల వేరియబుల్స్ తో.
ఇక్కడ, మనకు నాలుగు వేరియబుల్స్ ఉన్నాయి, ఇక్కడ మనకు మూడు వేరియబుల్స్ ఉన్నాయి, మరియు ఇక్కడ మనకు రెండు వేరియబుల్స్ ఉన్నాయి.
K- మ్యాప్లో ఈ ఫంక్షన్లలో వేరియబుల్స్ సంఖ్య మరియు 1 సంఖ్యను ప్రదర్శించే పట్టిక ఇక్కడ ఉంది.
ఈ సందర్భంలో మనకు నాలుగు వేరియబుల్స్ ఉంటే, మనకు 1 1 ఉంటుంది.
ఈ సందర్భంలో మనకు మూడు వేరియబుల్స్ ఉంటే, మనకు 21 ఒకసారి ఉంది, అది రెండు 1 సె.
మరియు ఈ సందర్భంలో రెండు వేరియబుల్స్ ఉంటే, అప్పుడు మనకు K- మ్యాప్లో 22 లేదా 4, 1 ఉన్నాయి.
అందువల్ల, ఈ ప్రతి సందర్భంలో, 1 యొక్క సంఖ్య 2 యొక్క శక్తి ద్వారా ఇవ్వబడుతుంది మరియు ఇది గుర్తుంచుకోవలసిన చాలా ముఖ్యమైన విషయం.
కాబట్టి, ఇది 1 సంఖ్య గురించి మరియు ఇప్పుడు మేము ఈ 1 యొక్క స్థానం గురించి మాట్లాడాలనుకుంటున్నాము.
K- మ్యాప్స్లో ఈ 1 ఎలా కనిపిస్తాయి? మరియు మేము ఈ ఉదాహరణలను పరిశీలిస్తే, ప్రతి సందర్భంలో 1 ఒక దీర్ఘచతురస్రం ద్వారా జతచేయబడిందని మేము కనుగొన్నాము.
కాబట్టి, ఇక్కడ ఒక దీర్ఘచతురస్రం ఉంది, ఇక్కడ ఒక దీర్ఘచతురస్రం ఉంది మరియు వాస్తవానికి, ఇది కేవలం ప్రవేశం మాత్రమే.
ఇప్పుడు, ఈ 1 ఒకదానికొకటి ప్రక్కనే కనిపిస్తాయి మరియు ఇక్కడ 1 కాదు మరియు ఇక్కడ మరొకటి కాదు, తద్వారా ఈ రెండు ఎంటిటీల చుట్టూ ఒక దీర్ఘచతురస్రాన్ని తయారు చేయవచ్చు మరియు ఈ నాలుగు గురించి ఒకే విధంగా ఉంటుంది, కాబట్టి ఇది చాలా ముఖ్యమైన విషయం
దానిని చూద్దాం; మునుపటి స్లైడ్లో మేము చేసిన పాయింట్లను అదే ఉదాహరణ మరోసారి సంగ్రహిస్తుంది.
వీటన్నింటికీ ఒకే ఉత్పత్తి పదం అయిన ఫంక్షన్ మనకు ఉంటే, అప్పుడు మేము K- మ్యాప్ గురించి రెండు పాయింట్లు చేయవచ్చు.
పాయింట్ సంఖ్య 1, సంఖ్య 1 2 యొక్క శక్తి ద్వారా ఇవ్వబడుతుంది - 20, 21, 22 కి పెరుగుతుంది మరియు పాయింట్ సంఖ్య 2, 1 యొక్క స్థానం ఎసి, మనం వాటి చుట్టూ దీర్ఘచతురస్రాన్ని గీయగలము.
ఇప్పుడు, ఈ విషయాలను దృష్టిలో పెట్టుకుని, మేము ముందుకు వెళ్తాము.
ఇప్పుడు మనం Y 1 ఫంక్షన్ను పరిశీలిద్దాం, ఇది X 1, X 2 మరియు X 3 యొక్క మొత్తం, ఇది X 1, X 2 మరియు X3 యొక్క OR ఆపరేషన్.
X 1 1 లేదా X 2 1 లేదా X 3 1 అయితే Y యొక్క మ్యాప్ ఎలా ఉంటుంది.
కాబట్టి, ఇప్పుడు మనం చేయాల్సిందల్లా ఈ మూడు పటాలలో 1 యొక్క స్థానాన్ని చూడండి మరియు Y యొక్క మ్యాప్లో ఆ 1 ని పునరావృతం చేయండి, అది అంత సులభం.
ఉదాహరణకు, ఈ 1, మేము ఈ రెండు 1 లకు ఇక్కడకు వెళ్తాము, మరియు ఈ నాలుగు 1 లు ఇక్కడకు వెళ్తాయి మరియు ఇది y ఫంక్షన్ కోసం ఒక మ్యాప్ను ఇస్తుంది.
ఇప్పుడు మనకు ఆసక్తి ఉన్న నిజమైన సమస్యకు వచ్చాము.
ఇచ్చిన K- మ్యాప్ నుండి కనీస వ్యక్తీకరణను గుర్తించడానికి ఆసక్తి.
కాబట్టి, ఈ Y ని ఉదాహరణగా తీసుకోండి, మాకు ఈ మ్యాప్ ఇవ్వబడింది.
మరియు ఈ మ్యాప్ నుండి, మేము ఫంక్షన్ కోసం కనీస వ్యక్తీకరణను కనుగొనాలనుకుంటున్నాము.
మరియు మనం కనిష్టంగా ఏమి అర్థం చేసుకోవాలి, ప్రతి పదంలో అతిచిన్న సంఖ్య మరియు వేరియబుల్ యొక్క అతిచిన్న సంఖ్య ఉండాలి, అంటే, 2 కె కలిగి ఉన్న 2 అతిచిన్న దీర్ఘచతురస్రాలను మనం గుర్తించాలి. ప్రతి ఒక్కటి 1 పెంచడానికి.
ఈ ప్రత్యేక ఉదాహరణ సందర్భంలో దీని అర్థం ఏమిటో చూద్దాం.
కాబట్టి, ఈ K- మ్యాప్ మాకు ఇవ్వబడింది మరియు సంబంధిత కనిష్ట వ్యక్తీకరణను కనుగొనమని అడుగుతారు.
దాని గురించి మనం ఎలా వెళ్తాము, మొదట 1 మరియు 0 మాత్రమే ఉన్న దీర్ఘచతురస్రాలను గుర్తించాము, అంటే 1 సంఖ్య 2 యొక్క శక్తి.
కాబట్టి, మేము రెండు 1 లేదా నాలుగు 1 లేదా ఎనిమిది 1 లతో దీర్ఘచతురస్రాలను గుర్తించాము.
I
ప్రతి దీర్ఘచతురస్రం కోసం మనం దీన్ని ఎలా చేయాలో ఇంకా చూడని ఉత్పత్తి పదాన్ని వ్రాయగలమని ఇప్పుడు మనకు తెలుసు.
కాబట్టి, మనకు మూడు దీర్ఘచతురస్రాలు ఉన్నందున మూడు పదాలు ఉన్నాయి, ఇది ఒక దీర్ఘచతురస్రం, దీనికి ఒక పదం ఉంది, కాబట్టి ఒక దీర్ఘచతురస్రం, మరొక దీర్ఘచతురస్రం మూడవది. దీర్ఘచతురస్రం.
అందువల్ల, ఈ పటం నుండి మనకు మూడు పదాలు ఉన్నాయని తెలుసు, ఆపై ఈ నిబంధనలలో ప్రతిదాన్ని వ్రాయడానికి మేము ముందుకు వెళ్తాము మరియు ఇది మాకు కనీస వ్యక్తీకరణను ఇస్తుంది.
అందువల్ల, మేము కొన్ని ఉదాహరణల కోసం దీన్ని చేయాలి మరియు అది చాలా స్పష్టంగా తెలుస్తుంది.
కాబట్టి, ఇక్కడ మా మొదటి ఉదాహరణ, మరియు ఈ K- మ్యాప్ ఇచ్చిన ఈ తార్కిక ఫంక్షన్ Y కోసం కనీస వ్యక్తీకరణను కనుగొనాలనుకుంటున్నాము.
కాబట్టి, మొదటి ప్రశ్న ఏమిటి, ఎన్ని 1 లు ఉన్నాయో తెలుసుకోవాలనుకుంటున్నాము; మరియు రెండు 1 లు ఉన్నాయని మనం చూస్తాము.
మరియు ఈ సందర్భంలో ఒక ప్రక్కనే ఉంది, కాబట్టి మనం ఈ రెండు వంటి దీర్ఘచతురస్రాన్ని కవర్ చేయవచ్చు.
21 కాబట్టి, 1 యొక్క దీర్ఘచతురస్రాన్ని తయారు చేయడం ద్వారా మేము వాటిని జోడించవచ్చు.
K- మ్యాప్లో ఉన్న అన్ని 1 ని దీర్ఘచతురస్రం కవర్ చేస్తుంది కాబట్టి - ఈ రెండూ 1 లు, తార్కిక ఫంక్షన్ Y ఒకే ఉత్పత్తి అని మేము నిర్ధారించగలము. కాలం దీని ద్వారా సూచించబడుతుంది.
తదుపరి ప్రశ్న ఏమిటంటే ఉత్పత్తి పదం ఏమిటి? కొన్ని పరిశీలనలు చేద్దాం.
A - ఉత్పత్తి పదం 1, B 1 కి సమానం మరియు సి 0 కి సమానం.
మరియు ఇవి మా ఉత్పత్తి పదం ద్వారా కవర్ చేయబడిన K- మ్యాప్ నుండి రెండు 1 అని మనం చూడవచ్చు; దీని కోసం, B యొక్క విలువ 1; దీని కోసం, B యొక్క విలువ కూడా 1 కి 1.
కాబట్టి, మొదటి ప్రశ్న ఏమిటి, మేము ఎన్ని 1 ఉన్నాయి తెలుసుకోవడానికి మేము కోరారు; మరియు మేము రెండు 1 యొక్క ఉన్నాయి చూడండి.
రెండవది - ఉత్పత్తి పదం A పై ఆధారపడి ఉండదు; మరియు మేము ఇక్కడ నుండి చూడవచ్చు; ఆ ఉత్పత్తి పదం 1, A 0 అయితే; A 1 అయితే ఇది కూడా 1. ఇది స్పష్టంగా A పై ఆధారపడదు.
ఈ పరిస్థితులన్నింటినీ సంతృప్తిపరిచే ఏకైక ఉత్పత్తి పదం B మరియు C సార్లు.
B 1 మరియు C 0 అయితే ఈ ఉత్పత్తి పదం 1, మరియు అది A పై ఆధారపడదు. మరియు ఈ సందర్భంలో, ఈ ఉత్పత్తి పదం తార్కిక ఫంక్షన్ Y యొక్క ప్రాతినిధ్యం. Y, BC కి సమానం అని మనం చెప్పగలం సార్లు.
మరియు ఇక్కడ నుండి, ఉత్పత్తి పదం 1 అయితే A 0 అని మనం చూడవచ్చు; A 1 అయితే ఇది కూడా 1. ఇది స్పష్టంగా A పై ఆధారపడదు.
ఇప్పుడు, ఈ పరిస్థితులన్నింటినీ సంతృప్తిపరిచే ఏకైక ఉత్పత్తి పదం BC బార్ అని తేలింది; B సార్లు 1 మరియు C 0 అయితే BC సార్లు 1; మరియు BC బార్ A పై ఆధారపడదు మరియు ఈ ప్రత్యేక ఉదాహరణలో, మేము గుర్తించిన ఉత్పత్తి పదం తార్కిక ఫంక్షన్ Y, ఎందుకంటే Y కి ఒకే ఉత్పత్తి పదం ఉందని మేము ఇంతకుముందు చెప్పినందున ఇది K లోని అన్ని 1 లను కప్పి ఉంచే ఒకే దీర్ఘచతురస్రం. -మ్యాప్, కాబట్టి Y BC కాలానికి సమానమని మేము నిర్ధారించాము.
తదుపరి ఉదాహరణ, మరోసారి మనకు రెండు 1 ఉన్నాయి, ఇది ఒకటి మరియు ఇది ఒకటి.
మరియు ఈ రెండింటినీ మనం కలపగలమా అనే ప్రశ్న, 1 యొక్క శక్తి 2 యొక్క శక్తి అయినప్పటికీ, అవి జతచేయబడవు ఎందుకంటే అవి ప్రక్కనే లేనందున అవి దీర్ఘచతురస్రం కావు.
వీటిలో ఏది 1 అని మనం ఆలోచించగల ఏకైక దీర్ఘచతురస్రం ఇది ఒకటి, కానీ ఆ సందర్భంలో అది కూడా 0 కలిగి ఉంటుంది మరియు వాస్తవానికి, మనకు అక్కరలేదు.
కాబట్టి, అప్పుడు మనకు రెండు పదాలతో కూడిన ఫంక్షన్ ఉంది, అవి మిళితం కావు మరియు వాటిలో ప్రతి ఒక్కటి ఒక మైనర్.
ఈ మిన్మార్ట్ అంటే ఏమిటి? A 1 అయినప్పుడు ఇది 1, B 1 మరియు C 0, కాబట్టి ఇది BC సార్లు.
ఈ మైనర్ అంటే ఏమిటి, ఇది 1, ఎ 1 అయినప్పుడు, బి 0, మరియు సి 1, కాబట్టి ఇది ఎ బి రెట్లు సి అవుతుంది.
కాబట్టి, మా ఫంక్షన్ ఈ పదం అలాగే A BC బార్ ప్లస్ A B బార్ సి వంటి పదం, మరియు దీనిని మరింత తగ్గించలేము.
తదుపరి ఉదాహరణ, మరోసారి మనకు రెండు 1, ఇక్కడ ఒకటి మరియు ఇక్కడ ఒకటి ఉన్నాయి.
మరియు ఈ రెండు 1 కలపవచ్చా అనేది ప్రశ్న.
ఇప్పుడు, ఈ రెండింటిని చేర్చడానికి ఈ 0 ను చేర్చకుండా మనం దీర్ఘచతురస్రాన్ని కూడా చేయలేమని మనకు అనిపిస్తుంది, అందువల్ల మన దగ్గర 1 ఉంది, కాబట్టి 1 ని జోడించలేము.
నిలువు వరుసల క్రమాన్ని చక్రీయ పద్ధతిలో మార్చడం ద్వారా ఈ K- మ్యాప్ను పున ate సృష్టి చేద్దాం మరియు మనకు ఏమి లభిస్తుందో చూద్దాం.
ఇక్కడ సవరించిన K- మ్యాప్ ఉంది మరియు మనం ఇక్కడ ఏమి చేసాము, మొదట ఈ 1, 0 నిలువు వరుసను 0 0 తరువాత మరియు తరువాత 1 1 నుండి సంగ్రహిస్తాము, కాబట్టి 0 0 0 1 మరియు 1 1. మరియు ఈ రెండు ఎంట్రీలలో 1 0.
ఈ రెండు ఎంట్రీలు ఇక్కడ మరియు అక్కడకు తరలించబడ్డాయి.
కాబట్టి, ఇలా చేయడం ద్వారా మేము నిజంగా వాటి ఫంక్షన్ను మార్చడం లేదు, ఈ ఫంక్షన్ ఇప్పటికీ మనం చేసిన విధంగానే ఉంది, K- మ్యాప్ (మ్యాప్) లోని ఎంట్రీలను క్రమాన్ని మార్చడం.
ఇప్పుడు అది ఒకదానికొకటి పక్కన వచ్చిందని మనం చూస్తాము.
కాబట్టి, రెండు 1 లు వాస్తవానికి ప్రక్కనే ఉంటాయి మరియు అందువల్ల కలపవచ్చు.
మరియు ఈ దీర్ఘచతురస్రంతో సరిపోయే పదం ఏమిటి?
ఉత్పత్తి పదం B 0 అయితే 1 మరియు C 0 అయితే, మరియు అది A నుండి స్వతంత్రంగా ఉంటుంది, ఎందుకంటే A ఇక్కడ 1, మరియు A 0 ఇక్కడ ఉంది.
కాబట్టి, ఆ పదం B సార్లు C సార్లు ఉండాలి.
రెండవ పదం లో, AB కాలమ్ 0 0 కి సమానం, మరియు ఎడమ వైపున ఉన్న K- మ్యాప్లో 1 0, A b కి సమానం, వాస్తవానికి తార్కికంగా ప్రక్కనే ఉంటాయి.
కాబట్టి, ఈ రెండు నిలువు వరుసలు 0 0 మరియు 1 0 తార్కికంగా ప్రక్కనే ఉన్నాయి.
మరియు దాని అర్థం ఏమిటి; దీని అర్థం, మేము ఈ కాలమ్ నుండి ఈ కాలమ్కు వెళితే, ఒక వేరియబుల్ మాత్రమే మారుతుంది.
కాబట్టి, A 0 నుండి 1 కి మారుతోంది, కానీ B మారడం లేదు.
కాబట్టి, ఇవి రేఖాగణితంగా ప్రక్కనే లేనప్పటికీ, తార్కికంగా ప్రక్కనే ఉన్నాయి.
కాబట్టి మనం ఇక్కడ చేసినట్లుగా K- మ్యాప్ను పునర్నిర్వచించకుండా ఈ 1 ని జోడించవచ్చు.
ఈ రెండు నిలువు వరుసలు తార్కికంగా పరస్పరం ఉన్నాయని మనకు తెలిసినంతవరకు, ఈ 1 మరియు ఈ 1 ని కవర్ చేసే దీర్ఘచతురస్రం గురించి మనం ఆలోచించవచ్చు. ఈ ఉదాహరణ తీసుకుందాం.
మనకు 1, 2, 3 మరియు 4 ఎన్ని ఉన్నాయి మరియు ఈ నాలుగు 1 లు ఒకదానికొకటి ప్రక్కనే లేవని మరియు అందువల్ల కలపలేమని తెలుస్తుంది.
కానీ అవి వాస్తవానికి ప్రక్కనే ఉన్నాయి మరియు దీనికి కారణం ఈ కాలమ్ తార్కికంగా ఈ కాలమ్ ప్రక్కనే ఉంది.
అదేవిధంగా, ఈ పంక్తి ఈ అడ్డు వరుసకు ఆనుకొని ఉంది, కాబట్టి వాస్తవానికి దీర్ఘచతురస్రాన్ని గీయడం సాధ్యమవుతుంది, ఇది ఈ నాలుగు 1 లన్నింటినీ కవర్ చేస్తుంది.
మరియు ఈ K- మ్యాప్ను పునర్నిర్మించమని మీరు ఖచ్చితంగా ప్రోత్సహించబడతారు, తద్వారా ఈ నాలుగు 1 లు బంచ్గా కనిపిస్తాయి.
కాబట్టి, ఉత్పత్తి పదం A నుండి స్వతంత్రంగా ఉన్న ఈ నాలుగు 1 లతో సరిపోయే పదం ఏమిటి, ఎందుకంటే A ఇక్కడ 0 మరియు A ఇక్కడ 1, దీనికి B ఉంది ఎందుకంటే B ఇక్కడ 0 మరియు B ఇక్కడ 0.
ఇది సి నుండి స్వతంత్రంగా ఉంటుంది, ఎందుకంటే సి ఇక్కడ 0, సి ఇక్కడ 1; మరియు దీనికి D సార్లు ఉన్నాయి, ఎందుకంటే D ఇక్కడ 0, D ఇక్కడ 0.
కాబట్టి, మేము వెతుకుతున్న ఉత్పత్తి B కి D రెట్లు X కి సమానం.
మరో ఉదాహరణ మనకు నాలుగు 1 లు, 1 లు, 2 లు, 3 లు, 4 లు ఉన్నాయి.
మరియు ఈ రెండింటినీ కవర్ చేయగల దీర్ఘచతురస్రం గురించి మనం ఆలోచించవచ్చు, ఈ రెండింటినీ కవర్ చేయగల రెండవ దీర్ఘచతురస్రం.
కాబట్టి, మా ఫంక్షన్ ఈ దీర్ఘచతురస్రానికి అనుగుణమైన రెండు పదాల 1 మొత్తంగా వ్రాయవచ్చు మరియు ఈ దీర్ఘచతురస్రానికి ఇక్కడ మరొకటి ఉంది, కాని మనకు ఈ కెన్ కంటే మెరుగైనది ఎందుకంటే ఈ కాలమ్ 0 0 ఈ కాలమ్ 1,0 కి ప్రక్కనే ఉంది .
వాస్తవానికి, ఈ నాలుగు 1 ను ఒకే దీర్ఘచతురస్రంతో కలపవచ్చు.
మరియు ఈ దీర్ఘచతురస్రంతో సరిపోయే పదం A నుండి స్వతంత్రంగా ఉండాలి, ఎందుకంటే ఇక్కడ A 0, 1 ఇక్కడ, దీనికి B సార్లు ఉండాలి ఎందుకంటే B ఇక్కడ 0.
ఇది D నుండి స్వతంత్రంగా ఉండాలి, ఎందుకంటే D 0 ఇక్కడ 1; మరియు అది సి బార్ కలిగి ఉండాలి ఎందుకంటే సి ఇక్కడ 0, మరియు అది మాకు బి బార్ సి బార్ ఇస్తుంది.
ఇప్పుడు ఈ ఉదాహరణను పరిశీలిద్దాం, ఇది చాలా ముఖ్యమైన విషయాన్ని తెలియజేస్తుంది.
మాకు ఇక్కడ మూడు 1 లు ఉన్నాయి.
ఇది 1, A BC సార్లు D సార్లు అనుగుణంగా ఉంటుంది, ఇక్కడ ఇది మొదటి పదం.
రెండవ పదం - ఇది 1 A BC బార్ D. కి అనుగుణంగా ఉంటుంది.
మరియు మూడవ 1 నుండి A సార్లు BC సార్లు D - ఇక్కడ మూడవ పదం.
ఇప్పుడు, మనకు మూడు 1 మరియు 3 మాత్రమే ఉన్నాయి, 2 యొక్క శక్తి కాదు, ఈ 1 ను ఒక పదంగా మిళితం చేయలేము; అయితే, వాటిని రెండు పదాలుగా మిళితం చేయవచ్చు మరియు ఎలా ఉంటుందో మనం చూస్తాము.
వాస్తవానికి, మేము రెండు దీర్ఘచతురస్రాలను ఒకేలా చేయగలము మరియు ఈ మూడు 1 లను కప్పి ఉంచగలము, కాని ఈ 1 రెండుసార్లు కప్పబడిందని గమనించండి, ఇప్పుడు అది సరేనా? X 1 ను BC సార్లు D సార్లు ప్లస్ A BC సార్లు D గా వ్రాద్దాం మరియు మేము ఈ పదాన్ని రెండుసార్లు వ్రాస్తాము, కాబట్టి ఒక BC సార్లు D ప్లస్ A BC సార్లు D మరియు తరువాత ఈ పదం.
ఇప్పుడు, ఈ రెండు పదాలలో, ఒక BC బార్ సాధారణం మరియు తరువాత మనకు D ప్లస్ D బార్ కూడా వస్తుంది; మరియు ఈ రెండు పదాలలో BC సార్లు D సాధారణం, ఆపై మనకు A ప్లస్ A సార్లు లభిస్తాయి.
ఇప్పుడు, ఇది 1, ఇది కూడా 1 మరియు ఇది మనకు ఈ కనీస వ్యక్తీకరణను BC సార్లు మరియు BC సార్లు D. ఇస్తుంది.
మరియు మేము నిజంగా ఈ బీజగణితం ద్వారా వెళ్ళవలసిన అవసరం లేదు.
కేవలం పరిశీలించడం ద్వారా మనం దీన్ని చేయవచ్చు.
ఈ రెండు 1 లను కవర్ చేయడానికి మనం రెండు దీర్ఘచతురస్రాలను గీయవచ్చు మరియు మరొకటి ఈ రెండు 1 లను కవర్ చేయడానికి.
మరియు మేము దానిని 1 రెండుసార్లు కవర్ చేసినట్లు కనిపిస్తోంది, కాని మేము ఈ గుర్తింపును ఇక్కడ ఉపయోగిస్తున్నందున.
ఈ పదం దీనిని Y అని పిలుస్తుంది, మేము Y ను Y ప్లస్ Y కి సమానంగా వ్రాసాము మరియు ఇది ఖచ్చితంగా మంచిది.
మరొక ఉదాహరణ, ఈ నాలుగు 1 లను ఒకే పదంతో ఇక్కడ కలపవచ్చు; ఈ రెండు 1 లను ఈ రెండు 1 లతో కలపవచ్చు, ఎందుకంటే ఈ కాలమ్ మరియు ఈ కాలమ్ తార్కికంగా ప్రక్కనే ఉన్నాయి.
ఈ రెండింటినీ మనం మాత్రమే కలిపితే ఏమి జరుగుతుంది? ఈ దీర్ఘచతురస్రానికి రెండు 1 లు మాత్రమే ఉంటాయి మరియు అంటే మూడు వేరియబుల్స్తో ఉత్పత్తి పదం.
అయితే, ఈ దీర్ఘచతురస్రం నాలుగు 1 యొక్క ple దా రంగును కలిగి ఉంది మరియు అందువల్ల, ఇది మాకు రెండు వేరియబుల్స్తో ఉత్పత్తి పదాన్ని ఇస్తుంది.
అందువల్ల, మేము వేరియబుల్ను రెండు 1 నుండి నాలుగు 1 యొక్క 1 కి తరలించకుండా ఉంటాము.
ఇప్పుడు, ఈ 1 ఏ పొరుగువారితో సంబంధం కలిగి ఉండదు మరియు అందువల్ల ఇది ఒక చిన్నదిగా మిగిలిపోయింది; ఈ 1 ఈ 1 కి ప్రక్కనే ఉంది, ఎందుకంటే ఈ అడ్డు వరుస మరియు ఈ అడ్డు వరుస తార్కికంగా ప్రక్కనే ఉన్నాయి, కాబట్టి మనం ఆ 1 ని ఈ 1 తో కలపవచ్చు.
1 లో కొన్ని చాలాసార్లు ఉపయోగించబడ్డాయి.
మరియు మనం ఇంతకుముందు చూసినట్లుగా, గుర్తింపు Y కారణంగా Y ప్లస్ Y కి సమానం.
ఉదాహరణకు, ఈ 1 గులాబీ దీర్ఘచతురస్రంతో పాటు ple దా దీర్ఘచతురస్రంలో ఉపయోగించబడింది.
ఈ 1 pur దా దీర్ఘచతురస్రాలతో పాటు ఆకుపచ్చ దీర్ఘచతురస్రాల్లో కూడా ఉపయోగించబడింది.
మేము 1 పలుసార్లు ఉపయోగించవచ్చు మరియు ఈ మొత్తం వ్యాయామం యొక్క మొత్తం ఉద్దేశ్యం ఏమిటి, మేము మొత్తం 1 యొక్క ప్రధాన మ్యాప్లో తక్కువ సంఖ్యలో దీర్ఘచతురస్రాలను చేర్చాలనుకుంటున్నాము, ఇది మాకు ఉత్పత్తిని ఇస్తుంది (చివరి కనిష్ట వ్యక్తీకరణలో) అతిచిన్న సంఖ్యను అందిస్తుంది ఉత్పత్తుల, మరియు ప్రతి దీర్ఘచతురస్రంతో సాధ్యమైనంత.
మరియు అది మనకు ఏమి చేస్తుందంటే అది తక్కువ సంఖ్యలో వేరియబుల్స్తో ఉత్పత్తుల నిబంధనలను ఇస్తుంది, ఇది మాకు కనీస వ్యక్తీకరణను ఇస్తుంది.
ఇప్పుడు, ఈ దీర్ఘచతురస్రాలకు కనీస వ్యక్తీకరణ ఏమిటో చూద్దాం.
ఉదాహరణకు, బార్ సి బార్ ఈ ఆకుపచ్చ దీర్ఘచతురస్రానికి అనుగుణంగా ఉంటుంది మరియు మీరు దీన్ని నిజంగా ధృవీకరించాలి.
అందువల్ల, ఆకుపచ్చ దీర్ఘచతురస్రానికి అనుగుణమైన కనీస వ్యక్తీకరణలో మనకు నాలుగు పదాలు ఉన్నాయి, ఒకటి ఈ ple దా దీర్ఘచతురస్రానికి అనుగుణంగా ఉంటుంది, ఈ పసుపు దీర్ఘచతురస్రానికి అనుగుణంగా ఉంటుంది, ఇది ఒకే మైనర్ మాత్రమే మరియు ఈ ఎరుపు దీర్ఘచతురస్రానికి అనుగుణంగా ఉంటుంది, ఒకటి, ఇది మా చివరి కనిష్ట వ్యక్తీకరణ.
కొన్ని డోంట్ కేర్ కండిషన్ ఉన్న ఈ ఉదాహరణను చూద్దాం.
X చేత సూచించబడిన డోంట్ కేర్ కండిషన్ ఉంది మరియు ఇక్కడ మరొకటి ఉంది.
ఇప్పుడు, ఈ X లతో మనం ఏమి చేయాలి అనేది ప్రశ్న.
మేము ఈ X, 0 లేదా 1 ను తయారు చేయవచ్చు, అదేవిధంగా మనం ఈ X, 0 లేదా 1 ను తయారు చేయవచ్చు మరియు మంచి ఎంపిక ఏమిటనేది ప్రశ్న.
మనం ఈ X ని 0 కి సమానంగా చేస్తామని అనుకుందాం, మరియు ఈ X కూడా 0 కి సమానం, అప్పుడు మనకు ఏమి ఉంది, అప్పుడు మనకు ఈ 1 ఇక్కడ ఉంది 1 ఇక్కడ 1 ఈ 1 ఈ 1 మరియు ఈ 1 మనకు రెండు 1 1 లో ఐదు 1 ఉంటుంది ఒక దీర్ఘచతురస్రంతో కలిపి. అవి రెండు 1 ల దీర్ఘచతురస్రాన్ని కూడా జోడించగలవు.
ఈ 1 వాస్తవానికి ఇక్కడ ఈ 1 కి దగ్గరగా ఉంది, కాబట్టి ఈ రెండింటినీ కూడా కలపవచ్చు.+
కాబట్టి, మనకు మూడు దీర్ఘచతురస్రాలు ఉన్నాయి, అంటే, చివరి వ్యక్తీకరణకు మూడు ఉత్పత్తి పదాలు ఉంటాయి, మరియు ప్రతి పదానికి మూడు వేరియబుల్స్ ఉంటాయి, కాబట్టి ఇది స్థానం మరియు ఈ చిరునామా దీని కంటే మెరుగైన పని చేద్దాం మరియు ఎలా చూద్దాం.
మనం ఈ X ని 0 కి సమానంగా చేస్తామని అనుకుందాం, మరియు ఈ X ని 1 కి సమానంగా చేస్తాము.
ఇప్పుడు మనకు మంచి కేసు ఉందని కనుగొన్నాము, ఈ 1 రెండింటినీ ఒక దీర్ఘచతురస్రంతో కలపవచ్చు మరియు ఈ నాలుగు 1 మరొక దీర్ఘచతురస్రంతో కలపవచ్చు
I
మరియు దీనితో, చివరి వ్యక్తీకరణ సి డి బార్ ప్లస్ ఎ బార్ సి బార్ డిలో మనకు రెండు పదాలు మాత్రమే ఉన్నాయి మరియు ఇది ఖచ్చితంగా మా మొదటి ఎంపిక కంటే మంచి ఎంపిక, ఇందులో రెండూ ఎక్స్ 0.
అందువల్ల, K- మ్యాప్లో మనకు డోంట్ కేర్ కండిషన్ ఉన్నప్పుడు, మేము వివిధ అవకాశాలను పరిగణనలోకి తీసుకోవాలి మరియు కనిష్ట వ్యక్తీకరణను ఇచ్చే సంభావ్యతను ఎంచుకోవాలి.
సారాంశంలో, తార్కిక పనితీరును తగ్గించడానికి K- మ్యాప్ను ఉపయోగించడం నేర్చుకున్నాము.
ప్రస్తుతానికి తరువాతి విషయాలలో ఈ టెక్నిక్ చాలా ఉపయోగకరంగా ఉంటుంది.
ఇప్పుడు మేము అనలాగ్ మరియు డిజిటల్ డొమైన్ మధ్య ఇంటర్ఫేస్ అనే క్రొత్త అంశంతో ప్రారంభిస్తాము, ఇది అనలాగ్ కన్వర్టర్ లేదా D A C తో డిజిటల్ యొక్క ప్రాథమిక కార్యాచరణను పరిశీలిస్తాము.
అప్పుడు మేము బైనరీ వెయిటెడ్ రిజిస్టర్లను ఉపయోగించి అమలు చేయబడిన D A C ని చూస్తాము మరియు వివిధ రకాల వడ్డీ కోసం పని చేస్తాము.
ఒక ఉదాహరణతో ప్రారంభిద్దాం.
ఇప్పుడు మేము అనలాగ్-టు-డిజిటల్ కన్వర్టర్ మరియు డిజిటల్-టు-అనలాగ్ కన్వర్టర్ గురించి చర్చిస్తాము మరియు అలాంటి కన్వర్టర్ వెనుక ఉన్న ప్రేరణతో మనం ఈ కన్వర్టర్ ఎందుకు మొదటి స్థానంలో అవసరమో ప్రారంభిద్దాం.
కాబట్టి, ఇక్కడ కొన్ని పాయింట్లు ఉన్నాయి, అసలు సిగ్నల్, థర్మోకపుల్తో కొలవబడిన వోల్టేజ్ లేదా కాలక్రమేణా మైక్రోఫోన్ లేదా అనలాగ్ వాల్యూమ్తో రికార్డ్ చేయబడిన స్పీచ్ సిగ్నల్. నిరంతరం మారుతూ ఉంటుంది.
మరోవైపు, మనం ఇంతకు మునుపు చూసినట్లుగా డిజిటల్ ఫార్మాట్లో డిజిటల్ సిగ్నల్ ప్రాసెసింగ్, స్టోరేజ్, కంప్యూటర్ వాడకం, స్ట్రాంగ్ ట్రాన్స్మిషన్ మొదలైన అనేక ప్రయోజనాలు ఉన్నాయి.
అందువల్ల, అనలాగ్ సిగ్నల్స్ అయిన ఈ నిజమైన సంకేతాలను డిజిటల్ ఆకృతికి మార్చడం అర్ధమే, ఆపై డిజిటల్ ఫార్మాట్ అందించే ఈ లక్షణాలన్నింటినీ సద్వినియోగం చేసుకోండి.
ఒక A D C అంటే అనలాగ్-టు-డిజిటల్ కన్వర్టర్కు అనుకూలంగా ఉండే A D C అనలాగ్ సిగ్నల్ను డిజిటల్ ఆకృతికి మార్చడానికి ఉపయోగించబడుతుంది.
డిజిటల్-టు-అనలాగ్కు రివర్స్ కన్వర్టర్ కూడా అవసరం, ఉదాహరణకు, ఒక డివిడిలో నిల్వ చేసిన సంగీతాన్ని స్పీకర్లో డిజిటల్ ఫార్మాట్లో ప్లే చేయాలి.) అనలాగ్ వోల్టేజ్గా మార్చాలి, అందువల్ల మేము ఆ సంగీతాన్ని వింటాము మరియు ఈ కన్వర్టర్ DAC చేత చేయబడుతుంది, డిజిటల్ సిగ్నల్ను అనలాగ్ ఆకృతిలోకి మార్చడానికి ఉపయోగించే స్టాండ్ (స్టాండ్) నుండి డిజిటల్ నుండి అనలాగ్ కన్వర్టర్ అయిన DAC.
డిజిటల్-టు-అనలాగ్ కన్వర్టర్ అయిన DAC యొక్క స్కీమాటిక్ పిక్చర్ ఇక్కడ ఉంది, ఇది డిజిటల్ ఇన్పుట్, ఇది అనలాగ్ అవుట్పుట్, అప్పుడు మనకు భూమికి చిప్ ఉంటుంది మరియు రిఫరెన్స్ వోల్టేజ్.
D, N మైనస్ 1 వరకు N బిట్స్ D 0, D 1, D 2 వరకు డిజిటల్ ఇన్పుట్.
ఇప్పుడు D A C ఈ బైనరీ సంఖ్య మరియు ఈ రిఫరెన్స్ వోల్టేజ్ విలువలను బట్టి అనలాగ్ వోల్టేజ్ అవుట్పుట్ను ఉత్పత్తి చేస్తుంది.
4 బిట్ D A C కి ఇక్కడ ఒక ఉదాహరణ; అంటే, N ఇక్కడ ఇన్పుట్ S 3, S 2, S 1, S 0 తో ఉంటుంది, ఇది D 3, D 2, D 1, D 0 కు అనుగుణంగా ఉంటుంది.
VA కి సమానమైన అవుట్పుట్ వోల్టేజ్ స్థిరమైన k k సార్లు S 3, ఇది 1 లేదా 0 కావచ్చు, 23+ S 2 (2 ప్లస్ 3 ప్లస్ S 2 కు గుణించాలి), ఇది మళ్ళీ 1 లేదా 0 రెట్లు పెరుగుతుంది 22+ S 1 (2 2 కి పెంచండి ప్లస్ ఎస్ 1) సార్లు 21+ ఎస్ 0 (2 పెంచడం 1 ప్లస్ ఎస్ 0) సార్లు 20 (2 కి 0 కి పెంచండి), మరియు సాధారణంగా మనం ఈ సమీకరణాన్ని VA కి సమానంగా వ్రాయవచ్చు K యొక్క మొత్తం 0 నుండి N మైనస్ 1 S k 2K ద్వారా (2 కి K కి పెంచండి).
అందువల్ల, ఇక్కడ గమనించవలసిన ముఖ్యమైన విషయం ఏమిటంటే, ప్రతి బిట్ వేరే బరువు (బరువు) పొందుతుంది, అధిక బిట్స్ ఎక్కువ బరువును పొందుతాయి మరియు తక్కువ బిట్స్ తక్కువ బరువును పొందుతాయి. మరియు ఈ స్కేలింగ్ కారకం (కారకం K) ఇక్కడ రిఫరెన్స్ వోల్టేజ్ VR కు అనులోమానుపాతంలో ఉంటుంది. , దాని విలువ DAC ఎలా వర్తించబడుతుందో దానిపై ఆధారపడి ఉంటుంది.+
ఇప్పుడు, V A అవుట్పుట్ వోల్టేజ్ను డిజిటల్ ఇన్పుట్ యొక్క ఫంక్షన్గా ఎలా మారుస్తుందో చూద్దాం, ఇది మేము D A C లేదా రేఖాచిత్రానికి వర్తింపజేస్తాము మరియు N 4 ఉన్న చోట అదే ఉదాహరణను తీసుకుంటాము.
కాబట్టి, ఇది 4 బిట్ (ఎ) డి ఎ సి.
కాబట్టి, ఇక్కడ మా డిజిటల్ ఇన్పుట్ ఉంది, మొదటి సంఖ్య 0 0 0 0 తరువాత 0 0 0 1, 0 0 1 0 మొదలైనవి 1 1 1 1 వరకు ఉంటాయి. కాబట్టి, ఈ దశాంశం 0, ఈ దశాంశం 1, 2 3, 4 మొదలైనవి 15 వరకు ఉంటుంది, మరియు ఈ అనువర్తిత ఇన్పుట్ ఫలితంగా అవుట్పుట్ V A 0 నుండి కొన్ని గరిష్ట అవుట్పుట్ వోల్టేజ్ వరకు మారుతుంది.
మరియు మనకు వివిక్త పాయింట్లు మాత్రమే ఉన్న సరళ రేఖ లేదా వక్రరేఖ లేదని ప్రత్యేకంగా గమనించండి మరియు మా ఇన్పుట్ వివిక్తమైనది మరియు ఈ 16 విలువలు మాత్రమే మరియు ఉదాహరణకు 2 విలువలు (విలువలు), ఉంది ఈ సంఖ్య మరియు ఆ సంఖ్య మధ్య డిజిటల్ ఇన్పుట్ లేదు.
కాబట్టి, మేము ఇక్కడ పాయింట్లను పరిశీలిస్తాము మరియు పంక్తులు లేదా వక్రతలు అన్నీ సరైనవి కావు.
ఇప్పుడు 2 వరుస అవుట్పుట్ విలువల మధ్య ఈ వ్యత్యాసాన్ని రిజల్యూషన్ సమయం అంటారు.ఇప్పుడు మనం DAC యొక్క బిట్ల సంఖ్య మరియు గరిష్ట అవుట్పుట్ వోల్టేజ్ యొక్క తీర్మానాన్ని సులభంగా తెలుసుకోవచ్చు. ఎందుకంటే ఈ సందర్భంలో 2N-1 ఉన్నాయని మనకు తెలుసు (2 N-1 కి పెంచండి). ఇక్కడ, ఉదాహరణకు, మనకు 2N-1 (2 N-1 కు పెంచండి) ఉంది, ఇది చాలా తక్కువ మరియు అత్యధిక విలువల మధ్య 16 మైనస్ 1 లేదా 15 విభాగాలు ఉన్నాయి.
కాబట్టి, ఈ సందర్భంలో గరిష్ట అవుట్పుట్ వోల్టేజ్ 15 ద్వారా విభజించబడినట్లు మేము రిజల్యూషన్ను లెక్కించవచ్చు.
ఇప్పుడు మనము D A C అమలు గురించి మాట్లాడుదాం మరియు బైనరీ వెయిటెడ్ రిజిస్టర్లను ఉపయోగించడం మా మొదటి విధానం, ఈ పదం యొక్క అర్థం ఏమిటి? 1 ప్రతిఘటన అయితే, తరువాతి 2 సార్లు, అంటే 2 R తదుపరి 2 సార్లు 2 R అంటే 4 R మరియు తరువాత 8 R మొదలైనవి.
ఇప్పుడు ఈ నిర్దిష్ట ఉదాహరణ 4 బిట్ (బిట్) D A C ఇన్పుట్ S 3, S 2, S 1, S 0, కాబట్టి S 3 0 లేదా 1 కావచ్చు, S2 0 లేదా 1 కావచ్చు.
అవుట్పుట్ VA ఇక్కడ ఈ op-amp యొక్క అవుట్పుట్, మనకు 4 స్విచ్లు ఉన్నాయి, ఇవి ఇన్పుట్ బిట్స్ S 3, S 2, S 1 ద్వారా నియంత్రించబడతాయి.
ఉదాహరణకు, ఈ స్విచ్ S 3 చే నియంత్రించబడుతుంది, S 3 0 అయితే, ఈ నోడ్ A 3 అలాంటి భూమికి అనుసంధానిస్తుంది మరియు S 3 గ్రౌండ్ అయితే A 3 అంటే రిఫరెన్స్ వోల్టేజ్ VR కి అనుసంధానించబడి ఉంటుంది.
మరో మాటలో చెప్పాలంటే, ఈ నోడ్ వద్ద వోల్టేజ్ S 3 రెట్లు ఉంటే, S 3 0 అయితే, ఆ వోల్టేజ్ 0 మరియు S 3 1 అయితే, ఆ వోల్టేజ్ VR మరియు ఈ స్విచ్ తో మనం ఇక్కడ చూపించాము S 2 నియంత్రించబడుతుంది మరియు అందువల్ల, ఈ వోల్టేజ్ S 2 రెట్లు VR.
ఇది S 1 చే నియంత్రించబడుతుంది.
కాబట్టి, ఇది S 1 సార్లు V R మరియు ఇది S 0 సార్లు V R.
కాబట్టి, ఇది మా సరళీకృత సర్క్యూట్ మరియు ఇది మా op-amp వేసవి (వేసవి) అని మేము చూశాము మరియు ఇప్పుడు ఇది ఎలా పనిచేస్తుందో చూద్దాం.
V మైనస్ మరియు V ప్లస్ సమానమైనవి కాబట్టి, మనకు V మైనస్ 0 కి సమానం మరియు అందువల్ల, ఈ కరెంట్ను లెక్కించవచ్చు మరియు ఈ కరెంట్ నేను 0 ప్లస్ I 1 ప్లస్ I 2 ప్లస్ I 3 తప్ప మరొకటి కాదు.
I0 ఇది S 0 V R మైనస్ 0 8R చే విభజించబడింది.
I1 ఇది S 1 V R మైనస్ 0 ను 4 R చే విభజించబడింది.
కాబట్టి, ఇది మాకు ఈ వ్యక్తీకరణను ఇస్తుంది.
కాబట్టి ప్రస్తుతము I, S 0 VR / 8 R ప్లస్ S 1 VR / 4 R మొదలైనవి. మరియు ఇప్పుడు మనం చేయగలిగేది ఈ సాధారణ (సాధారణ) VR / 8 R ను తీసుకొని, ఆపై ఈ వ్యక్తీకరణను ఇక్కడ పొందండి. ఇప్పుడు మనం జనరల్ రాశాము దీని కోసం వ్యక్తీకరణ.
మా విషయంలో N బిట్స్ 4 కి సమానం.
కాబట్టి, మా విషయంలో ఈ 2N-1 (2 N-1 కి పెంచడం) 23 (2 కి 3 కి పెంచండి) ఇది 8 కి సమానం.
కాబట్టి, ఇది మనకు లభిస్తుంది మరియు ప్రతి బిట్ వేరే బరువును పొందుతుంది. ఉదాహరణకు, LSB 0 యొక్క బరువు (బరువు) 20 లేదా 1 మరియు మా విషయంలో నాకు MSB 3 ఉంది, ఇది 23 లేదా 8 బరువు కలిగి ఉంటుంది మరియు ఇదే మేము DAC (DAC) నుండి ఆశించాము.
చివరగా, అవుట్పుట్ వోల్టేజ్ VA ను మేము కనుగొన్నాము, ఇక్కడ మేము ఆప్ ఆంప్ సర్క్యూట్ గురించి మాట్లాడినప్పుడు ఇంతకుముందు చేసాము - ఈ V మైనస్ 0 వోల్ట్లు మరియు కరెంట్ op amp లోకి వెళ్ళదు. అందువల్ల, ఈ ప్రస్తుత కరెంట్ R f మరియు అందువల్ల, VA ఇది మా అవుట్పుట్ వోల్టేజ్ V o 0 మైనస్ I సార్లు R f మరియు ఇక్కడ మనకు ఉన్నది మైనస్ R f సార్లు I మరియు నేను ఈ వ్యక్తీకరణ నుండి వచ్చింది మరియు అందువల్ల ఇది అవుట్పుట్ వోల్టేజ్ కోసం మనం పొందుతాము.
ఒక నిర్దిష్ట ఉదాహరణ తీసుకుందాం, 5 R వోల్ట్లకు సమానమైన V R తో 8-బిట్ (బిట్) D A C ను పరిగణించండి, R యొక్క అతిచిన్న విలువ ఏమిటి? సరఫరా నుండి డ్రా అయిన కరెంట్ను 10 మిల్లియాంప్కు పరిమితం చేసే నిరోధకత మా సరఫరా VR మరియు ఇది ఈ ప్రవాహాలన్నింటినీ సరఫరా చేస్తుంది మరియు మేము సరఫరా నుండి లాగే మొత్తం కరెంట్, ఇది 10 మిల్లియాంప్లకు పరిమితం చేయాలి.
ఇప్పుడు ఇది 8 బిట్ (DAC) కాబట్టి, మన నిరోధక విలువలు (విలువ) R, 2 R, 4 R మొదలైన వాటి నుండి వెళ్లి, ఆపై 26 (2 కి 6 కి పెంచండి) R కి పెరుగుతాయి మరియు తుది విలువ 27 (2 పెంచండి to 7) R.
లేకపోతే సర్క్యూట్ మనం ఇంతకు ముందు చూసినట్లే.
ఇప్పుడు సర్క్యూట్లో ఉన్న మొత్తం అంచు. ఈ స్విచ్ LSB చే S 0 గా నియంత్రించబడుతుంది. ఈ స్విచ్ S 1 చే నియంత్రించబడుతుంది మరియు చివరకు, ఈ స్విచ్) S 7 చే నియంత్రించబడుతుంది, ఇది MSB.
ఇప్పుడు మనం ఈ ప్రవాహాలను I 0, I 1 మొదలైనవి I 7 వరకు తీసుకుంటాము.
ఇప్పుడు ఈ నోడ్ వర్చువల్ గ్రౌండ్ V మైనస్ మరియు V ప్లస్ లతో సమానంగా ఉంటుంది.
అందువల్ల, మనకు 0 వోల్ట్లు ఉన్నాయి. ఇక్కడ ఈ కరెంట్ I 0 ఈ నోడ్లోని సంభావ్యత ద్వారా R 0 తో విభజించబడింది. A 0 మైనస్ 0 ఇది 27 (2 కి 7 కి పెంచండి) R మరియు ఈ విధంగా మేము ఈ ఇతర ప్రవాహాలను పొందుతాము. (ప్రవాహాలు ) పొందవచ్చు.
S 0 0 అయినప్పుడు, స్విచ్ ఈ స్థితిలో ఉంటుంది. నోడ్ A0 మైదానంలో ఉంది మరియు అందువల్ల, నేను 0 మరొక వైపు 0 గా ఉంటాను. S 0 1 అయితే, స్విచ్ ఆ స్థితిలో ఉంటుంది., ఇక్కడ సంభావ్యత ఉన్నప్పుడు VR మరియు తరువాత మనకు VR కరెంట్ R 0 తో విభజించబడింది.
మరో మాటలో చెప్పాలంటే, ఈ రిజిస్టర్ S 0 1 అయితే విద్యుత్ సరఫరా నుండి మాత్రమే విద్యుత్తును గీస్తుంది, అదేవిధంగా ఈ రెసిస్టర్ S 1 1 మరియు విద్యుత్ సరఫరాకు గరిష్ట కరెంట్ ఉంటే విద్యుత్ సరఫరా నుండి విద్యుత్తును తీసుకుంటుంది) సరఫరా చేయడానికి, మేము స్పష్టంగా S 0 కి సమానమైన 1 అవసరం, 1 S 1 కు సమానం, మొదలైనవి S 7 కు సమానమైన 1 వరకు అవసరం.
ఈ విధంగా, మేము ఇక్కడ వ్రాసాము.
గరిష్ట ఇన్పుట్ 1 1 1 1 1, 1 1 1 1 అయినప్పుడు, ఇన్పుట్ 1 1 1 1, 1 1 1 1 అయినప్పుడు VR నుండి గరిష్ట ప్రస్తుత ప్రవాహం VR నుండి తీసుకోబడుతుంది. అన్ని లోడ్ (లోడ్) A 0 నుండి A 7 ఇది VR కి అనుసంధానించబడి ఉంది.
కాబట్టి గరిష్ట కరెంట్ 10 మిల్లియాంప్స్కు పరిమితం చేయబడింది, కాబట్టి మేము 10 మిల్లియాంప్స్కు సమానం.
ఈ రెసిస్టెన్స్ ప్లస్ V R / 2R ద్వారా వచ్చే కరెంట్ తదుపరి నిరోధకత ద్వారా కరెంట్.
VR / 27 (2 పెంచడం 7) R వరకు అన్ని మార్గం సరైనది మరియు మేము VR / 27 (2 కి 7 కి పెంచండి) R సాధారణం (సాధారణం) మరియు 20 (2 ను 0 కి పెంచండి) మరియు 21 (2 పెంచడం 1 ) ప్లస్ 22 (2 కి 2 పెంచండి) మొదలైనవి 27 వరకు పొందవచ్చు (2 7 కి పెంచండి) మరియు ఇది బ్రాకెట్ 28-1 (2 రైజ్ 8 మైనస్ 1) గా మారుతుంది, ఇది 256 మైనస్ 1, 27 (2 రైజ్ to 7) కాబట్టి 128, కాబట్టి మేము R ద్వారా 255 రెట్లు VR తో ముగుస్తాము మరియు అది 10 మిల్లియాంప్స్ మించకూడదు మరియు అది మాకు R యొక్క కనీస విలువను ఇస్తుంది.
అంటే, VR ను 5 మిల్లియాంప్ నుండి 10 మిల్లియాంప్ నుండి 255/128 తో విభజించి 1 కిలో ఓం (కిలో ఓం) గా తేలింది.
ఇప్పుడు, ఈ ఉదాహరణ గోపాలన్ రాసిన ఈ పుస్తకం నుండి తీసుకోబడింది మరియు D A C మరియు A D C గురించి మరెన్నో ఆసక్తికరమైన వివరాలు ఉన్నాయి మరియు చూడటానికి మంచి పుస్తకం.
తదుపరి ప్రశ్న, R f కు సమానం అయితే, డెల్టా VA లో VA ఇక్కడ మారే తీర్మానం ఏమిటి.
ఇన్పుట్కు అనుగుణమైన ఎల్ఎస్బి అన్ని ఇతర ఇన్పుట్ బిట్లతో 0 నుండి 1 వరకు మారుతుంది.
I.
కాబట్టి, ఇది VA కోసం మా వ్యక్తీకరణ మరియు ఇది బ్రాకెట్ యొక్క ఇన్పుట్ బైనరీ సంఖ్యతో సరిపోతుంది, ఈ బ్రాకెట్ యొక్క కనీస విలువ ఏమిటి? S 0 0, S 1 0 అయినప్పుడు ఇది జరుగుతుంది.
S 7 అన్ని మార్గం 0 కి సమానం.
కాబట్టి, అత్యల్ప విలువ 0, ఇది అత్యధికం? S 0 1, S 1 1, మొదలైనవి ఉన్నప్పుడు S7 కు సమానమైన అత్యధిక విలువ.
మరియు అది అత్యధిక విలువ 255 లేదా 28-1 (2 8 మైనస్ 1 కి పెంచండి).
మరియు మేము రిజల్యూషన్ గురించి మాట్లాడేటప్పుడు, ఈ బ్రాకెట్ను 1 కి మార్చడానికి మేము అనుమతిస్తున్నాము మరియు ఈ ఇన్పుట్ LSB వలె అదే డెల్టా (డెల్టా) VA అని చెప్తున్నాము, ఇక్కడ S 0 ఇతర ఇన్పుట్ బిట్లతో 0 నుండి 1 కి మారుతోంది.
ఇప్పుడు మీరు రిజల్యూషన్ను లెక్కించవచ్చు.
అందువల్ల, VA డెల్టా రిజల్యూషన్, దీనిని బ్రాకెట్ 1 తో భర్తీ చేసినప్పుడు, ఇక్కడ పునరుత్పత్తి చేయబడిన ఈ కారకం ద్వారా ఇవ్వబడుతుంది మరియు ఇది 5 వోల్ట్లు, ఇది VR (2 8 మైనస్ 1 కి పెంచండి) ఈ సంఖ్య ఇక్కడ చాలాసార్లు Rf / R మరియు, Rf మరియు R సమానంగా ఉంటాయి, కాబట్టి ఇది 0.0391 వోల్ట్లు లేదా 39.1 మిల్లీవోల్ట్లుగా మారుతుంది.
తరువాతి ప్రశ్న ఏమిటంటే మాగ్నిట్యూడ్లో గరిష్ట అవుట్పుట్ వోల్టేజ్ ఏమిటి, ఇది మా VA మరియు ఇది ప్రతికూలంగా ఉందని గమనించండి మరియు అందుకే మేము మాగ్నిట్యూడ్ను ఇక్కడ బ్రాకెట్లలో ఉంచాము మరియు మాగ్నిట్యూడ్ గరిష్టంగా ఉన్నప్పుడు? బ్రాకెట్ గరిష్టంగా మారినప్పుడు ఇది జరుగుతుంది. దీని అర్థం ఈ బిట్స్ అన్నీ 1 కి సమానం.
అందువల్ల, ఇన్పుట్ బైనరీ సంఖ్య 1 1 1 1, 1 1 1 1 1 అయినప్పుడు గరిష్ట V A పరిమాణంలో లభిస్తుంది.
కాబట్టి, మనం చేయవలసింది ఇప్పుడు ఈ S లన్నింటినీ 1 తో భర్తీ చేసి, ఈ బ్రాకెట్ను అంచనా వేయండి మరియు అది మనకు లభిస్తుంది - VR అంటే 5 వోల్ట్లు 2 నుండి మైనస్ 1 వరకు పెరుగుతాయి, ఇది 128 Rf మరియు R కి సమానం.
కాబట్టి, ఇది ఒకటి మరియు ఈ బ్రాకెట్ అప్పుడు 20 (2 కి 0 కి పెంచండి) ప్లస్ 21 (2 కి 1 కి పెంచండి) 27 నుండి (2 కి 7 కి పెంచండి) పైకి, మరియు మనం అంచనా వేసినప్పుడు మనకు 9.961 వోల్ట్లు లభిస్తాయి.
1 0 1 0 0 1 1 0 0 1 కు అనుగుణమైన అవుట్పుట్ వోల్టేజ్ను కనుగొనడం తదుపరి ఇన్పుట్ బైనరీ సంఖ్య చాలా సులభం, మనకు ఇక్కడ VA ఉంది, మనం చేయాల్సిందల్లా 1 S 7 కు సమానం, 0 S 6 కు సమానం, 1 S 5 కు సమానం, 0 S 4 కు సమానం.
మరియు మేము దానిని ఎలా పొందుతాము.
కాబట్టి, V A మైనస్ 6.758 వోల్ట్లు అవుతుంది.
తదుపరి ప్రశ్న, రెసిస్టర్లు 1 శాతం సహనం కలిగి ఉన్నట్లు పేర్కొనబడితే, ఇన్పుట్ 1 కి అనుగుణంగా మోడ్ (మోడ్) VA యొక్క పరిధి ఏమిటి.
1 1 1 1, 1 1 1 1. ఇప్పుడు మొదట 1 శాతం సహనం ఏమిటో మనకు ఇవ్వండి, ఉదాహరణకు ఈ ప్రతిఘటనను తీసుకుంటుంది, ఇది 1 నామమాత్రపు నామమాత్రపు విలువ అని మాకు చెప్పండి. ఇది k అయితే, దీని అర్థం వాస్తవ విలువ 0.99 సార్లు 1 k నుండి 1.01 సార్లు 1 k మధ్య ఏదైనా కావచ్చు.
ఈ ప్రతిఘటన గురించి ఏమిటి? R మరియు R f ఒకటేనని మేము అనుకుంటాము, కాబట్టి R 7 యొక్క నామమాత్ర విలువ కూడా 1 k మరియు అందువల్ల, అసలు విలువ 0.99 k నుండి 1.01 k వరకు మారుతుంది.
ఈ ప్రతిఘటన గురించి ఏమిటి? నామమాత్రపు విలువ 26 రెట్లు R; అంటే, 64 సార్లు 1 k లేదా 64 k మరియు దాని వాస్తవ విలువ 64 k సార్లు 0.99 నుండి 64 k సార్లు 1.01 వరకు మారవచ్చు.
ఇప్పుడు మేము మా అసలు ప్రశ్నకు తిరిగి వస్తాము మరియు ఈ ఇన్పుట్తో మా స్విచ్లు అన్నీ పై స్థానంలో ఉన్నాయి; దీని అర్థం, A 7 V R కి అనుసంధానించబడి ఉంది, A 1 V R కి అనుసంధానించబడి ఉంది మరియు ఈ ప్రవాహాలన్నీ ఇప్పుడు సున్నా కానివి.
ఈ పరిమాణాలలో VA గరిష్టంగా ఉండటానికి, ఈ ప్రవాహాలన్నీ వాటి గరిష్ట విలువలకు తీసుకెళ్లాలి మరియు ఈ ప్రతిఘటనలను వాటి కనీస విలువలకు తీసుకువెళ్ళినప్పుడు ఇది జరుగుతుంది, ఇది షరతు సంఖ్య 1 అంటే, రెండవ షరతు ఏమిటంటే ఈ కరెంట్ ఈ ప్రవాహాలన్నింటికీ అదనంగా ఉంటుంది.
ఇప్పుడు, ఈ R f మరియు ఈ R f బార్ గుండా వెళుతుంది. దీని గరిష్ట విలువ కూడా తీసుకోవాలి; దీని అర్థం, R f దాని గరిష్ట విలువను తీసుకోవాలి.
V A max (max) లెక్కించడం సులభం అని మేము కనుగొన్న తర్వాత.
కాబట్టి, ప్రస్తుతము I 0, I 1 అయినప్పుడు మోడ్ VA గరిష్టంగా (గరిష్టంగా) ఉంటుంది. వాటి గరిష్ట విలువలను R k 0 తో R k 0 కు సమానంగా భావించండి, ఇది నామమాత్రపు విలువ (నామమాత్ర) విలువ) 1 మైనస్ 0.01 0.99 .
కాబట్టి, ప్రతిఘటన ఈ ప్రతిఘటనలు ఈ ప్రవాహాలు ఎలా గరిష్టీకరించబడతాయో వాటి కనీస విలువలకు దారితీస్తాయి.
మరియు రెండవ R f గరిష్టంగా R f, ఇది నామమాత్ర విలువలో 1.01 కు సమానం.
కాబట్టి, ఈ సందర్భంలో మోడ్ (మోడ్) V A యొక్క గరిష్ట విలువ అప్పుడు V R సార్లు 255/128, ఇది మునుపటి కాలంలో కనుగొనబడిన ఈ నిష్పత్తి R యొక్క గరిష్ట విలువ (విలువ) R; దీని అర్థం, 1.01 ను 0.99 ద్వారా విభజించారు, ఎందుకంటే అవి నామమాత్రపు విలువను కలిగి ఉంటాయి, అవి అవి రద్దు చేయబడతాయి మరియు ఇది మాకు 10.162 వోల్ట్లను ఇస్తుంది.
మోడ్ VA యొక్క కనీస విలువ గురించి ఏమిటి? దీనికి విరుద్ధంగా, మేము ఈ సంఖ్యలను వీలైనంత చిన్నదిగా చేయాలనుకుంటున్నాము.
కాబట్టి, Rf ను దాని కనీస విలువకు తీసుకెళ్లాలి మరియు ఈ రెసిస్టర్లన్నీ వాటి గరిష్ట విలువలను తీసుకోవాలి.
కాబట్టి, ఇది 9.764 వోల్ట్ల దిగుబడిని 1.01 ద్వారా విభజించిన సింగిల్ ఫ్యాక్టర్ బార్ 0.99 ను ఇస్తుంది.
అందువల్ల, 1 1 1 1, 1 1 1 1 వంటి నిర్దిష్ట ఇన్పుట్ కలయిక కోసం మేము చివరి స్లైడ్లో కనుగొన్నట్లుగా, మా ప్రతిఘటనలు సరైనవి కానందున అవుట్పుట్ వోల్టేజ్ చాలా తేడా ఉంటుంది. అవి నాన్జెరో టాలరెన్స్. మరియు మునుపటి ఉదాహరణలో మేము కనుగొన్నాము మాగ్నిట్యూడ్లో గరిష్ట VA 10.162 మరియు కనిష్టం 9.764 మరియు రెండింటి మధ్య వ్యత్యాసం 0.4 వోల్ట్లు, ఇది చాలా ముఖ్యమైనది, ఎందుకంటే ఇది DAC యొక్క రిజల్యూషన్ కంటే చాలా పెద్దది, ఇది 39 వాస్ మిల్లివోల్ట్.
అందువల్ల, ఈ పరిస్థితి స్పష్టంగా ఆమోదయోగ్యం కాదు ఎందుకంటే ఇది తప్పులకు దారితీస్తుంది మరియు ఈ పరిస్థితిని సరిదిద్దడానికి మనం ఏమి చేయవచ్చు? మేము మరింత గట్టి సహనంతో రెసిస్టర్లను ఉపయోగించవచ్చు.
కాబట్టి, చిన్న సహనాలతో రిజిస్టర్లను ఉపయోగించడం ద్వారా అవుట్పుట్ వోల్టేజ్ వైవిధ్యాన్ని తగ్గించవచ్చు; ఏది ఏమయినప్పటికీ, నిర్మించడం చాలా కష్టం మరియు R 2, 128 సార్లు R I I తో మరియు ప్రతి ఒక్కటి తగినంత చిన్న సహనంతో విభిన్నమైన నిరోధక విలువలను కలిగి ఉంది.
కాబట్టి, సాంకేతిక సమస్య ఉంది మరియు అందువల్ల, ఈ మొత్తం డిజైన్ను మెరుగుపరచాల్సిన అవసరం ఉంది.
R 2 R నిచ్చెన నెట్వర్క్ అని పిలవబడే పరిష్కారం, ఈ నెట్వర్క్లో మనకు 2 నిరోధక విలువలు R మరియు 2 R. మాత్రమే ఉన్నాయి.
కాబట్టి, ఈ నెట్వర్క్లోని అన్ని రిజిస్టర్లు R లేదా 2 R గా ఉంటాయి మరియు అందువల్ల డెల్టా సమస్య అవుతుంది.
VA నిరోధక విలువలలో తేడాల ద్వారా సమర్థవంతంగా పరిష్కరించబడుతుంది.
సంక్షిప్తంగా, మేము డిజిటల్ అనలాగ్ కన్వర్టర్లను చూడటం ప్రారంభించాము, దీనిలో మేము బైనరీ వెయిటెడ్ రెసిస్టర్ విధానాన్ని ఉపయోగించి 8 బిట్లను ఉపయోగించాము.) DAC ఉదాహరణగా పరిగణించి వివిధ రకాల ఆసక్తిపై పనిచేశాము.
ప్రతిఘటన విలువలలో గణాంక వైవిధ్యం బిట్ల సంఖ్య పెద్దగా ఉన్నప్పుడు ఈ రకమైన D A C ను అనుచితంగా మారుస్తుందని మేము కనుగొన్నాము.
తరువాతి తరగతిలో ఈ కష్టాన్ని తగ్గించే R 2 R నిచ్చెన యొక్క విధానాన్ని పరిశీలిస్తాము.
గత ఉపాన్యాసము లొ మనుము ఫాసర్లు phasors పరిచయం చేశాము మరియు వాటిని సైనోఇయిడాల్ స్థిరమైన స్థితిలో ఎలా అర్థం చేసుకోవచ్చో చూడవచ్చు.
ఈ ఉపన్యాసంలో స్థిరమైన స్థితి ప్రవాహాలు మరియు వోల్టేజ్లను అర్థం చేసుకోవడానికి మేము RLC సర్క్యూట్లకు ఫేజర్లను వర్తింపజేయాలనుకుంటున్నాము.
అదనంగా, సైనూసోయిడల్ స్థిరమైన స్థితిలో RLC సర్క్యూట్ల కోసం గరిష్ట విద్యుత్ బదిలీ సిద్ధాంతాన్ని చూస్తాము.
కాబట్టి, ప్రారంభిద్దాం.
సర్క్యూట్ విశ్లేషణలో ఫాజర్ను ఎలా ఉపయోగించవచ్చో చూద్దాం; టైమ్ డొమైన్ KCL మరియు KVL సమీకరణాలు సిగ్మా IK సమాన 0 మరియు సిగ్మా V సమాన 0 ను ఫాజర్ సమీకరణాలుగా వ్రాయవచ్చు, సిగ్మా IK 0 కి సమానం, ఇక్కడ IK ప్రస్తుత దశ మరియు సిగ్మా VK 0 కి సమానం, ఇక్కడ V యొక్క ఫ్రీక్వెన్సీ డొమైన్లో వోల్టేజ్ ఫాజర్లు ఉన్నాయి .
రెసిస్టర్లు, కెపాసిటర్లు మరియు ప్రేరకాలను ఫ్రీక్వెన్సీ డొమైన్లో J ద్వారా Z సార్లు I కు సమానంగా వర్ణించవచ్చు, ఇది DC పరిస్థితులలో R కి సమానం.
ఒకే తేడా ఏమిటంటే, ఈ సమీకరణం గురించి మాట్లాడేటప్పుడు మనం సంక్లిష్ట సంఖ్యలతో వ్యవహరిస్తున్నాము.
ఫ్రీక్వెన్సీ డొమైన్లో ఒక స్వతంత్ర సైనూసోయిడల్ మూలం, ఉదాహరణకు, DC మూలం వలె ప్రవర్తిస్తుంది, వోల్టేజ్ మూలం కోసం సైనూసోయిడల్ వోల్టేజ్ మూలం, మేము ఫేజర్ Vs స్థిరంగా ఉందని చెప్పవచ్చు, ఇది సంక్లిష్టమైనది. సంఖ్య.
ఆధారిత మూలాల కోసం, t (I) తో సమానమైన టైమ్ డొమైన్ సంబంధం t ను C యొక్క ఫాజర్ సంబంధంలోకి అనువదిస్తుంది, ఫాజర్ (I) ఫ్రీక్వెన్సీ డొమైన్ బీటా టైమ్స్ ఫేజర్ను కలిగి ఉంటుంది. (ఫాజర్) I c కి సమానం.
అందువల్ల, మనకు ఇక్కడ సంక్లిష్ట సంఖ్యలు ఉన్నాయి తప్ప సమీకరణం చాలా పోలి ఉంటుంది.
అందువల్ల, ఈ అన్ని పరిశీలనల నుండి, ఫాసోర్లను ఉపయోగించి సైనూసోయిడల్ స్థిరమైన స్థితిలో సర్క్యూట్ విశ్లేషణ స్వతంత్ర మరియు ఆధారిత వనరులు మరియు రెసిస్టర్లతో DC సర్క్యూట్ల మాదిరిగానే ఉంటుందని మేము నిర్ధారించాము; అందువల్ల, DC సర్క్యూట్ల కోసం మేము పొందిన అన్ని ఫలితాలు సైనూసోయిడల్ స్థిరమైన స్థితి విశ్లేషణకు చెల్లుతాయి, అందువల్ల రెసిస్టర్లు, నోడల్ విశ్లేషణ, మెష్ విశ్లేషణ, థెవెనిన్ మరియు థెవెనిన్ సిద్ధాంతం కోసం సిరీస్ సమాంతర సూత్రాలు. సైనూసోయిడల్ స్థిరమైన స్థితిలో ఒక సర్క్యూట్కు నేరుగా వర్తించవచ్చు ; కోర్సు యొక్క పూర్తిగా వేరు, మేము ఇప్పుడు సంక్లిష్ట సంఖ్యలతో వ్యవహరిస్తున్నాము.
ఇప్పుడు మనం సైనూసోయిడల్ స్థిరమైన స్థితిలో RL సర్క్యూట్లను పరిశీలిద్దాం; సిరీస్లో R మరియు L ఇక్కడ రెసిస్టర్ R, మనం ఇంతకుముందు చూసినట్లుగా మరియు ప్రేరక యొక్క ఇంపెడెన్స్ j ఒమేగా (ఒమేగా) L.
ఇది మా సైనూసోయిడల్ సోర్స్ వోల్టేజ్ V m యాంగిల్ 0, ఇది సమయం V m cos (Cos) ఒమేగా (t) డొమైన్ మరియు ఈ కరెంట్ పట్ల మాకు ఆసక్తి ఉంది.
మేము ఫేజర్ను ఉపయోగించినప్పుడు, మనం చూసే విధంగా ఇది చాలా సులభమైన గణన అవుతుంది; మనకు DC సోర్స్ DC మూలం ఉందని imagine హించుకుందాం, ఇక్కడ Vs, ఒక రెసిస్టర్ R1 మరియు ఇక్కడ ఒక రెసిస్టర్ R 2, ఆ సందర్భంలో ప్రస్తుతంలో ఏమి జరుగుతుంది? DC కరెంట్ (లు) ఇది V లు R 1 ప్లస్ R 2 తో విభజించబడింది; కాబట్టి మనం V లకు బదులుగా సరిగ్గా అదే సమీకరణాన్ని ఉపయోగించవచ్చు, మనకు ఇప్పుడు V m కోణం 0 అనే ఫాజర్ మూలం ఉంది మరియు R 1 మరియు R 2 కు బదులుగా వాటికి R మరియు j ఒమేగా L ఉన్నాయి, నిరోధకం మరియు ప్రేరక పరిమితులు ఉన్నాయి.
కాబట్టి, మనం I (I) ను V m కోణం 0 గా వ్రాయవచ్చు, ఈ మూలాన్ని R ప్లస్ j ఒమేగా (ఒమేగా) L ద్వారా విభజించారు.
నేను ఈ ఫాజర్ను ప్రస్తుతములో వ్రాయగలను ఎందుకంటే నేను (I) కోణం మైనస్ తీటా, ఇక్కడ నేను m ఈ వ్యక్తీకరణ యొక్క పరిమాణం మరియు ఇది V m మాత్రమే హారం యొక్క పరిమాణం ద్వారా విభజించబడింది, ఇది వర్గమూల R చదరపు మరియు ఒమేగా స్క్వేర్ ఎల్ స్క్వేర్.
హారం యొక్క కోణం r ఒమేగా L ద్వారా ఒమేగా L కి విలోమంగా ఉంటుంది మరియు న్యూమరేటర్ యొక్క కోణం 0.
కాబట్టి, I (R) యొక్క నికర కోణం ఒమేగా L కు ఎదురుగా ఉన్న మైనస్ టాంజెంట్ (టాన్), ఇది మనం ఇక్కడకు వచ్చే మైనస్ సంకేతం.
కాబట్టి, ఇక్కడ తీటా అనేది తీటా (తీటా) ఆర్ చేత ఒమేగా ఎల్ సరసన టాంజెంట్.
ప్రస్తుతానికి డొమైన్లో నేను సమానమైన టి యొక్క ఐ కాస్ ఒమేగా టి మైనస్ తీటా (తీటా) కలిగి ఉన్నాను, ఈ వ్యక్తీకరణ మరియు తీటా (తీటా) (తీటా) ద్వారా నేను ఇచ్చాను.
ఇప్పుడు మనం కొంత భాగాన్ని, హించుకుంటాము, R 1 ఓంకు సమానం, ఆర్ 1.6 మిల్లీ హెన్రీకి సమానం మరియు ఎఫ్ (ఎఫ్) 50 హెర్ట్జ్కు సమానం అప్పుడు తీటా 26.6 డిగ్రీలు అవుతుంది; మరియు ఇక్కడ సోర్స్ వోల్టేజ్ కోసం ప్లాట్లు ఉన్నాయి మరియు ప్రస్తుత మా సోర్స్ వోల్టేజ్ V m 1.
కాబట్టి, ఇది ఒకప్పుడు కాస్ ఒమేగా టి, మరియు ఇది మన ప్రస్తుత చీకటి మరియు ఇప్పుడు ఈ సమీకరణం పరంగా ఈ ప్రస్తుత కేసును అర్థం చేసుకోవడానికి ప్రయత్నిస్తాము.
మా I m విలువ సుమారు 0.9 ఆంపియర్లు మరియు అందువల్ల, ప్రస్తుత మైనస్ 0.9 ఆంపియర్ల నుండి 0.9 ఆంపియర్లకు వెళుతుంది.
ఇంతకుముందు తీటా 26.6 డిగ్రీలు అని మేము చెప్పినట్లుగా, ఇప్పుడు ఈ విలువను ఈ కేసులో ఎలా జోడించగలం? ఇది ఒక కోణం మరియు ఇది సమయానుకూలంగా ఉంటుంది.
కాబట్టి, ఈ కోణాన్ని సమయానికి మార్చడానికి మనం ఏమి చేయవచ్చు; 360 డిగ్రీలు ఒక కాలానికి అనుగుణంగా ఉన్నాయని మాకు తెలుసు, ఈ సందర్భంలో 20 మిల్లీసెకన్లు, ఎందుకంటే 1 కంటే ఎక్కువ 20 మిల్లీసెకన్లు మరియు అందువల్ల, 1.48 మిల్లీసెకన్లు ఉండే కోణంతో సరిపోలడానికి ఈ వాస్తవాన్ని ఉపయోగించవచ్చు.
ఇప్పుడు మనం t, I m cos (osga) t (t) మైనస్ తీటాకు సమానం అనే సమీకరణానికి తిరిగి వస్తాము మరియు t యొక్క గరిష్ట స్థాయికి (శిఖరం) ఎప్పుడు వెళ్తాను? అంటే ఒమేగా (ఒమేగా) టి మైనస్ తీటా (తీటా) 0 కి సమానం మరియు సమాధానం ఒమేగా (ఒమేగా) ద్వారా విభజించబడిన తీటా (తీటా) కు సమానమైనప్పుడు, మరియు ఇది సరిగ్గా 1.48 మిల్లీసెకన్లు.
కాబట్టి, వోల్టేజ్ దాని గరిష్ట స్థాయికి (పీక్) వెళ్ళినప్పుడు కరెంట్ పీక్ గుండా వెళ్ళదు, కానీ కొంతకాలం తర్వాత అది 1.48 లేదా 1.5 మిల్లీసెకన్ల వద్ద ఉంటుంది, అందుకే ఇది సోర్స్ వోల్టేజ్ను తట్టుకుంటుందని మేము చెప్తున్నాము .
ఈ మొత్తం గణన ఎంత సులభమో గమనించండి, మేము ఎటువంటి అవకలన సమీకరణాన్ని వ్రాయలేదు, మేము ఈ వ్యక్తీకరణను సిరీస్లో 2 రెసిస్టర్ల మాదిరిగా ఉపయోగించాము మరియు తరువాత అవసరమైన అన్ని సమాచారాన్ని పొందగలిగాము.
కాబట్టి, ఈ విధంగా ఫేజర్లు వాస్తవానికి సైనూసోయిడల్ స్థిరమైన స్థితిలో సర్క్యూట్ను విశ్లేషించడంలో సహాయపడతాయి.
కాబట్టి, ఇక్కడ మీరు సర్క్యూట్ను అనుకరించగల సర్క్యూట్ ఫైల్ మరియు కొన్ని భాగాల విలువలను మార్చవచ్చు మరియు ఫలితాలను చూడవచ్చు.
ఇప్పుడు ఫేజర్ రేఖాచిత్రాన్ని ఉపయోగించి గ్రాఫికల్ రూపంలో V s ప్లస్ V L కి సమానమైన సంక్లిష్ట విమానంలో KVL సమీకరణాన్ని సూచిద్దాం; మరియు దీన్ని చేయడానికి మనకు V s అవసరం, ఇది V m కోణం 0, మరియు V R, V L, మొదట V R ను చూద్దాం; V R అంటే ఏమిటి? V R I అనేది టైమ్స్ రెసిస్టర్ యొక్క ఇంపెడెన్స్, ఇది R.
కాబట్టి, ఇది R సార్లు I కోణం మైనస్ తీటా కోణం, ఎందుకంటే మా I I కోణం మైనస్ తీటా.
V L గురించి ఏమిటి? V L I అనేది టైమ్స్ ఇండక్టర్ యొక్క ఇంపెడెన్స్, ఇది j ఒమేగా ఎల్.
ఇప్పుడు ఈ J 2 నుండి కోణం PI (Pi) మరియు I I m కోణం మైనస్ తీటా.
కాబట్టి, ఈ పరిమాణం ఒమేగా I సార్లు ఎల్ యాంగిల్ మైనస్ తీటా ప్లస్ పిఐ (పై) 2.
కాబట్టి, ఇది మా ఫాజర్ రేఖాచిత్రం, ఈ వెక్టర్ V s మరియు V s కోణం 0 రూపంలో ఉంటుంది, కాబట్టి ఇది X (X) X (X) అక్షం, ఇది V యొక్క నిజమైన భాగం ఇది మన VR మరియు తక్కువ VR లోని కోణం కంటే; దీని అర్థం, సవ్యదిశలో తీటా మరియు ఇది మా V L, V L యొక్క కోణం ఏమిటి? ఇది మైనస్ తీటా ప్లస్ పిఐ (పై) బై బై (బై) 2; దీని అర్థం, మేము (తీటా) ద్వారా సవ్యదిశలో వెళ్తాము, ఆపై మనం సవ్యదిశలో 2 (పిఐ) ద్వారా వెళ్తాము, ఇది మనల్ని ఈ కోణానికి తీసుకువస్తుంది మరియు ఇప్పుడు ఈ సమీకరణం V లు VR కి సమానం. ప్లస్ VL తప్పనిసరిగా వెక్టర్ సమీకరణం, మనం VL మరియు VR ను జోడిస్తే మేము V లు పొందుతాము.
మేము అప్పుడు సిరీస్ RC సర్క్యూట్ను RC సర్క్యూట్కు తీసుకువెళతాము మరియు దీనిని మనం చూసిన RL సర్క్యూట్ మాదిరిగానే విశ్లేషించవచ్చు; ఈ సందర్భంలో మనం ఏమి చేయాలి? మేము రెసిస్టర్ను దాని ఇంపెడెన్స్తో భర్తీ చేస్తాము, దాని కెపాసిటర్ ఇంపెడెన్స్తో j ఒమేగా (ఒమేగా) సి 1 పై ఉంటుంది, ఆపై మనం ఈ కరెంట్ను V m కోణం 0, J ఒమేగా (ఒమేగా) C గా R ప్లస్ 1 తో విభజించవచ్చు, ఇది నేను m కోణం తీటా అని వ్రాస్తాము, ఇక్కడ నేను ఈ పరిమాణంతో ఇవ్వబడుతుంది, మీరు దీన్ని నిజంగా ధృవీకరించాలి; మరియు తీటా 2 మైనస్ టాంజెంట్ (ఒమేగా) R సి బై పై (పై).
ఇప్పుడు ఒమేగాకు ఎదురుగా ఉన్న ఈ టాంజెంట్ (టాన్) Rc 0 నుండి PI (Pi) 2 వరకు మారవచ్చు, కాబట్టి ఈ కోణం ప్రాథమికంగా సానుకూల కోణం.
ఆ సమయంలో డొమైన్లో మనం కరెంట్లో వ్రాస్తాము ఎందుకంటే నేను m కాస్ ఒమేగా టి ప్లస్ తీటా, మరియు ఇప్పుడు మనం కొన్ని భాగాల విలువల కోసం తీటాను లెక్కిస్తాము, R 1. ఓంకు సమానం, సి 5.3 మిల్లీఫ్రాడ్ మరియు ఎఫ్ 50 హెర్ట్జ్కు సమానం.
ఈ కలయికకు తీటా 31 డిగ్రీలు మరియు 1.72 మిల్లీసెకన్ల సమయానికి అనుగుణంగా ఉంటుంది.
I యొక్క t దాని గరిష్ట స్థాయికి (శిఖరం) వెళ్ళనప్పుడు ఇప్పుడు మనం ఈ ప్రశ్న అడుగుతాము మరియు ఒమేగా (ఒమేగా) t ప్లస్ తీటా 0 కి సమానమైనప్పుడు జరుగుతుంది; దీని అర్థం, t ఒమేగాతో విభజించబడిన మైనస్ తీటాకు సమానం మరియు ఆ సమయం సరిగ్గా 1.72 మిల్లీసెకన్లు.
ప్లాట్ పద్ధతిని చూద్దాం; ఈ లైట్ కర్వ్ సోర్స్ వోల్టేజ్ 1 కోణం 0 మరియు ఇది 0 కి సమానమైన దాని శిఖరం (పీక్) గుండా వెళుతుంది ఎందుకంటే కాస్ కాస్ ఫంక్షన్, ఇది డార్క్ కర్వ్ కరెంట్ మరియు ఇది దాని పీక్ (పీక్).) టి ఉన్నప్పుడు వెళుతుంది మేము ఇప్పుడే చర్చించిన మైనస్ 1.72 మిల్లీసెకన్లకు సమానం.
మరో మాటలో చెప్పాలంటే, సోర్స్ వోల్టేజ్ దాని శిఖరానికి (పీక్) వెళ్ళే ముందు కరెంట్లో గరిష్ట స్థాయికి వెళుతుంది, అందుకే కరెంట్లోని మూలం వోల్టేజ్కు దారితీస్తుందని మేము చెబుతున్నాము థెటా ఒమేగా సెకన్ల ముందు సోర్స్ వోల్టేజ్ వల్ల సంభవిస్తుంది T (శిఖరం) యొక్క శిఖరం.
ఈ సందర్భంలో KVL సమీకరణాన్ని సూచించడానికి ఒక ఫాజర్ రేఖాచిత్రాన్ని గీయండి, ఇది VS VR ప్లస్ VC కి సమానం.
వీఆర్ అంటే ఏమిటి? నేను సార్లు R నేను ఎక్కడ కోణాన్ని తీటా చేస్తాను.
కాబట్టి, VR నేను R సార్లు నేను యాంగిల్ తీటా. VC గురించి ఏమిటి? I టైమ్స్ కెపాసిటర్ యొక్క V C ఇంపెడెన్స్, ఇది J ఒమేగా (ఒమేగా) C పై 1.
ఇప్పుడు ఒకటి కంటే ఎక్కువ j కి సమానమైన j ఉంది, ఇది కోణం మైనస్ PI (Pi) 2 మరియు అందువల్ల, ఒమేగా) C ద్వారా I m సమాన vc ను పొందుతాము, ఇది వ్యాప్తి, మరియు కోణం కోసం మనకు తీటా వస్తుంది) ఆ నేను నుండి వస్తుంది మరియు తరువాత ఈ మైనస్ 2 నుండి ఈ మైనస్ 2 నుండి పిఐ (పై) 2 ఉంటుంది.
మన తీటా 0 మరియు pi మధ్య సానుకూల కోణం 2 అని మేము ముందే చెప్పినట్లుగా; ఆ సమాచారంతో మనం ఇప్పుడు ఫాజర్ రేఖాచిత్రాన్ని గీయవచ్చు, ఇది మా VS మరియు ఇది x అక్షం వెంట ఉంది, ఎందుకంటే దీనికి 0 కోణం ఉంటుంది.
వీఆర్ గురించి ఏమిటి? Vr సానుకూలంగా ఉన్న కోణ తీటాను మరియు 0 మరియు pi మధ్య 2 ను కనుగొంది.
కాబట్టి, Vr పోలి ఉంటుంది; విసి గురించి ఏమిటి? VC లోని తీటా మైనస్ పై కోణం 2.
అందువల్ల, మేము తీటా ద్వారా సవ్యదిశలో వెళ్లి 2 నుండి పై వరకు సవ్యదిశలో మారుతాము, అది మనల్ని ఈ కోణానికి తీసుకువస్తుంది.
కాబట్టి, ఇది మా VC మరియు ఇప్పుడు వెక్టర్ సమీకరణం VS VR ప్లస్ VC కి సమానమని మనం చూడవచ్చు; ఇది మా వి.ఎస్ అని అందరూ సంతృప్తి చెందారు.
కాబట్టి, VR ప్లస్ VC మమ్మల్ని VS కి తీసుకువస్తుంది, కాబట్టి, ఈ సందర్భంలో, ఈ KVL సమీకరణానికి అనుగుణమైన ఫాజర్ రేఖాచిత్రం ఇది.
ఇప్పుడు ఇక్కడ చూపిన మరింత క్లిష్టమైన సర్క్యూట్ గురించి పరిశీలిద్దాం.
కాబట్టి, మనకు సైనూసోయిడల్ వోల్టేజ్ సోర్స్ 10 యాంగిల్ 0 ఫ్రీక్వెన్సీ 50 హెర్ట్జ్ ఉంది, మరియు మేము ఈ ప్రవాహాలను IS, IC మరియు IL లను కనుగొనాలనుకుంటున్నాము.
స్టెప్ నంబర్ వన్ మేము అన్ని భాగాలను వాటి ఇంపెడెన్స్గా మారుస్తాము, కాబట్టి ఇది 2 ఓంలలో 2 ఓంలు (వాస్తవానికి) ఉంటుంది; 10 ఓంల నుండి 10 ఓంల వరకు మిల్లీపెడ్ జెడ్ 3 అవుతుంది, ఇక్కడ ఈ Z 3 J ఒమేగా Z వద్ద 1, ఇది మైనస్ 15 నుండి ఎంట్రీ Z 4 వరకు 1.6 ఓంలు (ఓంలు) అవుతుంది. Z4 ఉన్న చోటికి వెళుతుంది. ఒమేగా) 2 pi సార్లు 50 L.
కాబట్టి, ఇది J4.07 ఓంలుగా మారుతుంది.
ఇప్పుడు తరువాతి దశ ఏమిటంటే, ఈ కలయిక యొక్క సమానమైన ఇంపెడెన్స్ను మనం లెక్కించగలము మరియు ఈ సిరీస్ సమాంతర రెసిస్టివ్ కలయిక లాంటిది, మనకు సిరీస్లో Z2 మరియు Z4 ఉన్నాయి, ఇది Z3 మరియు Z1 లతో
72 మిల్లిసెకన్ల milliseconds సమయంతో ఉంటుంది.
ఈ దశలన్నింటికీ వెళ్ళడానికి మరియు Z సమానమైన తుది ఫలితాన్ని చేరుకోవడానికి మీరు ఖచ్చితంగా ప్రోత్సహించబడ్డారు, కానీ ఇది మీ కాలిక్యులేటర్ను కూడా చూస్తుంది మరియు మీరు మీ కాలిక్యులేటర్ను అనుమతించే అవకాశం ఉంది, ఈ గణనను తక్కువ సంఖ్యలో దశల్లో చేయగలుగుతారు .
ఇప్పుడు, ముందుకు సాగండి.
కాబట్టి, మేము ఈ దశకు చేరుకున్నాము, మీకు Z సమానమైనది. మాకు ఇప్పటికే V. ఉంది.
కాబట్టి, ఇప్పుడు, నేను s లను లెక్కించవచ్చు. కాబట్టి, I s ను V S Z సమానమైన, V s 10 కోణం 0 మరియు Z మునుపటి స్లైడ్ నుండి ఈ సంఖ్యకు సమానం, కాబట్టి ఇది 3.58 కోణం 36.8 డిగ్రీ ఆంపియర్. ఇది జరుగుతుంది.
నేను కనుగొన్నప్పుడు నేను ప్రస్తుత డివిజన్ సూత్రాన్ని ఉపయోగించి I సి పొందవచ్చు, అంటే నేను సి 2 Z 2 ప్లస్ Z 4 కు సమానం Z 2 ప్లస్ Z 4 ప్లస్ Z 3 సార్లు విభజించబడింది, అంటే నేను సంఖ్యకు మారుతుంది, ఏమిటి IL గురించి? మీరు IL ను 2 విధాలుగా పొందవచ్చు: A I మైనస్ I c మాకు KCL చేత IL ఇస్తుంది లేదా మేము ప్రస్తుత డివిజన్ ఫార్ములా IL ను Z3 ప్లస్ Z3 ప్లస్ Z కి సమానంగా ఉపయోగించవచ్చు. 2 ప్లస్ z 4 రెట్లు, నేను మీకు పొందడానికి IL సంఖ్య అవసరం , మరియు ఇప్పుడు మేము ఈ నోడ్ వద్ద KCL సమీకరణాన్ని వివరించే ఫాజర్ రేఖాచిత్రాన్ని గీస్తాము.
ఇక్కడ ఫాజర్ రేఖాచిత్రం మరియు మేము x మరియు y అక్షం కోసం ఒకే స్కేల్ని ఉపయోగించామని గమనించండి, ఇది x (x) అక్షం మీద 1 యూనిట్ను y (y) అక్షం మీద 1 యూనిట్ను సూచించే దూరం.
కోణాలు సరిగ్గా ప్రదర్శించబడేలా మేము దీన్ని చేస్తాము; అంటే మనం ఈ పద్ధతిని పాటిస్తే 45 డిగ్రీల కోణం వాస్తవానికి 45 డిగ్రీల కోణంలా కనిపిస్తుంది.
సరే ఇప్పుడు ఈ నోడ్లో KCL సమీకరణం సంతృప్తికరంగా ఉందో లేదో ధృవీకరిస్తాము.I c ప్లస్ IL (IL) కు సమానమైన సమీకరణం ఏమిటి?
మా I (I) 3.58 కోణం 36.08 డిగ్రీలు, ఈ వెక్టర్ మాగ్నిట్యూడ్ 3.58, మరియు ఈ కోణం 36.8 డిగ్రీలు.
ఐసి పరిమాణం 3.7.
కాబట్టి, నాకన్నా కొంచెం పెద్దది మరియు 44.6 డిగ్రీల కోణం, ఈ కోణం 44.6 డిగ్రీలు.
IL ఇది 0.546 మాగ్నిట్యూడ్లో చాలా చిన్నది మరియు ప్రతికూల కోణం కలిగి ఉంటుంది, కనీసం 70.6 డిగ్రీలు.
కాబట్టి, ఇది మా IL; ఇప్పుడు మనం సి ప్లస్ IL వాస్తవానికి సమానమని చూస్తాము; దీని అర్థం, KCL ధృవీకరించబడింది.
సరళ DC సర్క్యూట్ల కోసం గరిష్ట విద్యుత్ బదిలీ సిద్ధాంతాన్ని మేము చూశాము; ఇప్పుడు సైనూసోయిడల్ స్థిరమైన స్థితిలో గరిష్ట విద్యుత్ బదిలీని చూద్దాం.
కాబట్టి, ఈ సర్క్యూట్ ద్వారా థెవెనిన్ సమానమైన సర్క్యూట్ను ఇక్కడ పరిశీలిద్దాం, అంటే వోల్టేజ్ సోర్స్ V t h సిరీస్లో ఇంపెడెన్స్ Z t h; ఈ రెండు కోర్సులు సంక్లిష్ట సంఖ్యలు.
ఇప్పుడు మేము సర్క్యూట్కు లోడ్ ఇంపెడెన్స్ను జోడిస్తాము మరియు దాని ఫలితంగా ఒక కరెంట్ ప్రవహిస్తుంది మరియు కరెంట్ లోని ఈ కరెంట్ స్పేసర్ I చే సూచించబడుతుంది.
ఈ సర్క్యూట్ 2 Z L నుండి విద్యుత్ బదిలీ గరిష్టంగా ఉన్న పరిస్థితిని మేము కనుగొనాలనుకుంటున్నాము.
R L ప్లస్ j x L కి సమానమైన JLL తో ప్రారంభిద్దాం, ఇక్కడ ఇది ZL యొక్క నిజమైన భాగం మరియు ఇది ZL యొక్క inary హాత్మక భాగం మరియు Z t h R t h ప్లస్ j x t h.
I I m phi కోణం, నేను ఇక్కడ ఈ ఫాజర్ I యొక్క పరిమాణం మరియు fi దాని కోణం.
కాబట్టి, Z సమానమైన Z1 ప్లస్ Z3 సమాంతర Z2 ప్లస్ Z4.
ఇప్పుడు, ZL చేత గ్రహించబడిన శక్తి సగం మీటర్ m R RL ఇచ్చిన P కి సమానం, ఇక్కడ I m ఈ ఫేజర్ యొక్క పరిమాణం మరియు RL Z L యొక్క నిజమైన భాగం.
ఏమిటి ఇది నేను యొక్క పరిమాణం, మరియు నేను ఏమిటి? V t h ను Z t h మరియు Z L చే విభజించారు.
కాబట్టి, ఇక్కడ ఈ వ్యక్తీకరణకు సమానమైన p ను పొందుతాము.
ఈ వ్యక్తీకరణను సగం మోడ్ (సగం మోడ్) V t h స్క్వేర్గా R t h ప్లస్ R L స్క్వేర్డ్ ప్లస్ X టి హెచ్ ప్లస్ ఎక్స్ ఎల్ స్క్వేర్డ్ మరియు ఆర్ ఎల్ చేత గుణించాలి.
ఇప్పుడు ఈ V t h తరగతి ZL నుండి స్వతంత్రంగా ఉంది మరియు మనకు సంబంధించినంతవరకు అది స్థిరంగా ఉంటుంది.
కాబట్టి, ఇప్పుడు మనం చేయవలసింది ఈ మొత్తం వ్యక్తీకరణ గరిష్టంగా ఉన్న Z పై పరిస్థితులను కనుగొనడం.
ఇప్పుడు, P గరిష్టంగా ఉండటానికి, స్పష్టంగా ఈ హారం కనిష్టంగా ఉండాలి మరియు X వ ప్లస్ XL స్క్వేర్డ్ 0 అయినప్పుడు ఇది జరుగుతుంది, ఎందుకంటే ఇక్కడ ఒక చదరపు ఉంది, ఈ పదాన్ని అతి చిన్న విలువగా తీసుకోవచ్చు. 0 మరియు, అందువల్ల, ఈ రెండవ పదానికి సమానమైన xh తో xh కు సమానమైన x L మైనస్ వ మరియు xl మనకు అదృశ్యమవుతుంది, మరియు మనకు p సమాన rv ప్లస్ rl స్క్వేర్డ్ టైమ్స్ r ను సగం మోడ్ ద్వారా విభజించి V వ చదరపుకి సమానం.
కాబట్టి, గరిష్ట విద్యుత్ బదిలీ కోసం మనం ఇప్పుడు ఈ వ్యక్తీకరణను పెంచాలి.
మేము దీన్ని ఎలా చేయాలి? మేము RL కు సంబంధించి P ను వేరు చేస్తాము మరియు మేము DPD RL ను 0 తో సమానం చేస్తాము మరియు R R R T T కి సమానమైనప్పుడు P గరిష్టంగా ఉంటుందని కనుగొన్నాము.
కాబట్టి, మనకు 2 షరతులు ఉన్నాయి: JL యొక్క inary హాత్మక భాగం X L, ఇది X L యొక్క inary హాత్మక భాగం యొక్క ప్రతికూలానికి సమానంగా ఉండాలి, ఇది X t h మరియు ZL యొక్క వాస్తవ భాగం Z t h యొక్క వాస్తవ భాగానికి సమానంగా ఉండాలి.
లోడ్ ZL లో గరిష్ట విద్యుత్ బదిలీ కోసం సంగ్రహంగా చెప్పాలంటే, మనకు RL మరియు XL కు సమానమైన RL అవసరం, ఇది మైనస్ కంటే తక్కువ; దీని అర్థం, మా లోడ్ ఇంపెడెన్స్ థెవెనిన్ సమానమైన ఇంపెడెన్స్ యొక్క సంక్లిష్ట యాదృచ్చికంగా ఉండాలి, ఇది Z T H.
కాబట్టి, ZL తప్పనిసరిగా Z వ నక్షత్రానికి సమానంగా ఉండాలి.
ఇప్పుడు సైనూసోయిడల్ స్థిరమైన స్థితి కోసం గరిష్ట శక్తి బదిలీ సిద్ధాంతం యొక్క అనువర్తనాన్ని చూద్దాం, ఇది ఆడియో ఇన్పుట్ సిగ్నల్ ద్వారా శక్తినిచ్చే ఆడియో యాంప్లిఫైయర్.
కాబట్టి, ఇక్కడ పౌన encies పున్యాల పరిధి 20 Hz నుండి 16 KHz లేదా అంతకంటే ఎక్కువ ఉంటుంది.
ఈ ఆడియో యాంప్లిఫైయర్ తరువాత ట్రాన్స్ఫార్మర్ ఉంది మరియు ఈ ట్రాన్స్ఫార్మర్ ఎందుకు అవసరమో త్వరలో వ్యాఖ్యానిస్తాము మరియు చివరకు, మనకు ఈ స్పీకర్ ఉంది.
ఈ స్పీకర్ సంక్లిష్ట ఇంపెడెన్స్ను కలిగి ఉంటుంది, ఇది ఫ్రీక్వెన్సీతో మారుతుంది, కానీ ఆడియో పరిధిలో దాని నిరోధకత సాధారణంగా 8 ఓంలు (ఓంలు), మరియు దాని inary హాత్మక భాగాన్ని విస్మరించవచ్చు.
అందువల్ల, సమానమైన సర్క్యూట్ ఈ సర్క్యూట్ ద్వారా ఇక్కడ ప్రాతినిధ్యం వహిస్తుంది, ఇక్కడ ఈ మూలం ఆడియో యాంప్లిఫైయర్ యొక్క లాభం ద్వారా విస్తరించబడిన ఇన్పుట్ సిగ్నల్ను సూచిస్తుంది మరియు తరువాత ఈ ఒక నిరోధకత ఆడియో యాంప్లిఫైయర్ యొక్క అవుట్పుట్ నిరోధకత, ఆపై మనకు ట్రాన్స్ఫార్మర్ ఒకటి ఉంది. నిష్పత్తి n 1 2, n 2 మరియు చివరకు, ఈ 8 ఓంల నిరోధకత ద్వారా స్పీకర్ ప్రాతినిధ్యం వహిస్తుంది.
ఈ సర్క్యూట్ నుండి స్పీకర్కు విద్యుత్ బదిలీని పెంచడం మా లక్ష్యం, అందువల్ల మేము ఇన్పుట్ సిగ్నల్తో పెద్ద శబ్దాన్ని వింటాము.
కాబట్టి, సర్క్యూట్ను సరళీకృతం చేద్దాం, మేము ఈ ప్రతిఘటనను ట్రాన్స్ఫార్మర్ యొక్క మరొక వైపుకు బదిలీ చేయవచ్చు మరియు అది N2 స్క్వేర్డ్ సమయంలో 8 ఓంల ద్వారా N1 అవుతుంది.
ఇక్కడ మా నిజమైన సమస్య ప్రకటన, మేము ఈ సర్క్యూట్ను చూస్తాము మరియు ఆడియో సిగ్నల్ యొక్క గరిష్ట శక్తి బదిలీని అందించడానికి ట్విస్ట్ నిష్పత్తిని లెక్కిస్తాము; గరిష్ట విద్యుత్ బదిలీ సిద్ధాంతం ఏమిటి? ఇది ZL తప్పనిసరిగా Z t h నక్షత్రానికి సమానంగా ఉండాలని పేర్కొంది మరియు ఈ సందర్భంలో Z t h మరియు ZL యొక్క inary హాత్మక భాగాలు 0, దీని అర్థం నిజమైన భాగం సమానంగా ఉండాలి; దీని అర్థం, మనకు 1 కి సమానమైన N 1by N 2 చదరపు సార్లు 8 ఓంలు (ఓంలు) ఉండాలి.
ఇప్పుడు మనం ఈ సమీకరణాన్ని n1 కొరకు n2 ద్వారా పరిష్కరించగలము మరియు ఇది n1 ద్వారా n2 ద్వారా 11 గురించి ఇస్తుంది.
అందువల్ల, మేము ఈ అనువాదంతో ట్రాన్స్ఫార్మర్ను ఎంచుకుంటే, ఆడియో సిగ్నల్ స్పీకర్కు గరిష్ట శక్తిని అందిస్తుంది, మరియు ఈ ఇన్పుట్ సిగ్నల్తో సాధ్యమయ్యే అతి పెద్ద శబ్దాన్ని మేము వింటాము.
ముగింపులో, సైనూసోయిడల్ స్థిరమైన స్థితిలో RLC సర్క్యూట్లను విశ్లేషించడానికి ఫాజర్లను ఎలా ఉపయోగించాలో చూశాము; కొంతకాలం తర్వాత ఫిల్టర్ సర్క్యూట్ను చూసేటప్పుడు ఈ నేపథ్యం చాలా ఉపయోగకరంగా ఉంటుంది.
సైనూసోయిడల్ స్థిరమైన స్థితిలో ఆర్ఎల్సి సర్క్యూట్ల కోసం గరిష్ట విద్యుత్ బదిలీ సిద్ధాంతాన్ని కూడా చూశాము.
ఆచరణలో చాలా ముఖ్యమైన ఒక ఉదాహరణను మేము పరిగణించాము, అనగా స్పీకర్ నుండి గరిష్ట ఆడియో శక్తిని ఎలా పొందాలో, ఇది ఇప్పుడు ప్రతిదీ.
వ్రాసేటప్పుడు ఈ విలువ రాయడానికి ముందు లేదా తరువాత నేను కొన్ని లెక్కలు కూడా చేయగలను.
వ్రాసేటప్పుడు ఈ విలువ రాయడానికి ముందు లేదా తరువాత నేను కొన్ని లెక్కలు కూడా చేయగలను.
అందువల్ల, రీడ్ రైట్ యొక్క విలువ మార్చబడిందని లేదా రీడ్ రైట్ యొక్క విలువను ఎవరైనా చదివారని ఆ వస్తువు ఎల్లప్పుడూ తెలుసుకుంటుంది.
అందువల్ల, రీడ్ రైట్ యొక్క విలువ మార్చబడిందని లేదా రీడ్ రైట్ యొక్క విలువను ఎవరైనా చదివారని ఆ వస్తువు ఎల్లప్పుడూ తెలుసుకుంటుంది.
కాబట్టి, ఈ డేటా సభ్యుడిని పబ్లిక్ యాక్సెస్గా ఉంచడం సరికాదు.
కాబట్టి, ఈ డేటా సభ్యుడిని పబ్లిక్ యాక్సెస్గా ఉంచడం సరికాదు.
ఇ
ఇ ప్పుడు, మనం చదవడానికి మాత్రమే చేయాలనుకుంటున్న తదుపరిదాన్ని చూస్తే ఇతర డేటా సభ్యులకు వస్తోంది.
ప్పుడు, మనం చదవడానికి మాత్రమే చేయాలనుకుంటున్న తదుపరిదాన్ని చూస్తే ఇతర డేటా సభ్యులకు వస్తోంది.
అందువల్ల, ఏదైనా మోడల్ యొక్క విభిన్న వాస్తవ-ప్రపంచ డేటా రకాల పరంగా, ఎన్కప్సులేషన్ పుట్టిన తేదీ లాగా మాత్రమే చదివే డేటా చాలా ఉందని మేము కనుగొంటాము.
అందువల్ల, ఏదైనా మోడల్ యొక్క విభిన్న వాస్తవ-ప్రపంచ డేటా రకాల పరంగా, ఎన్కప్సులేషన్ పుట్టిన తేదీ లాగా మాత్రమే చదివే డేటా చాలా ఉందని మేము కనుగొంటాము.
ఒక వ్యక్తి పుట్టిన తేదీ మారదు, కాబట్టి ఆ వ్యక్తి కోసం ఒక వస్తువును సృష్టించేటప్పుడు దానిని ఏదో ఒకదానికి అమర్చాలి మరియు ఆ తరువాత దానిని మార్చడం సాధ్యం కాకూడదు, దానిని నియంత్రించడానికి ఉత్తమ మార్గం ఒక ప్రైవేట్ యాక్సెస్తో సృష్టించబడుతుంది ఆపై దానిపై ఒక ఫంక్షన్ను మాత్రమే స్వీకరించడానికి అనుమతించండి.
ఒక వ్యక్తి పుట్టిన తేదీ మారదు, కాబట్టి ఆ వ్యక్తి కోసం ఒక వస్తువును సృష్టించేటప్పుడు దానిని ఏదో ఒకదానికి అమర్చాలి మరియు ఆ తరువాత దానిని మార్చడం సాధ్యం కాకూడదు, దానిని నియంత్రించడానికి ఉత్తమ మార్గం ఒక ప్రైవేట్ యాక్సెస్తో సృష్టించబడుతుంది ఆపై దానిపై ఒక ఫంక్షన్ను మాత్రమే స్వీకరించడానికి అనుమతించండి.
కాబట్టి, అది ఎవరైనా పుట్టిన తేదీని చదవడానికి మరియు ఆ వ్యక్తి వయస్సును లెక్కించడానికి లేదా ఉద్యోగి ఐడిని చదివి తనిఖీ చేయడానికి, విద్యార్థి యొక్క రోల్ నంబర్ను చదవడానికి మరియు విద్యార్థి గ్రేడ్ను కనుగొనటానికి అనుమతిస్తుంది.
కాబట్టి, అది ఎవరైనా పుట్టిన తేదీని చదవడానికి మరియు ఆ వ్యక్తి వయస్సును లెక్కించడానికి లేదా ఉద్యోగి ఐడిని చదివి తనిఖీ చేయడానికి, విద్యార్థి యొక్క రోల్ నంబర్ను చదవడానికి మరియు విద్యార్థి గ్రేడ్ను కనుగొనటానికి అనుమతిస్తుంది.
...
@@ -45,5 +44,3 @@
...
@@ -45,5 +44,3 @@
ఈ మాడ్యూల్లో, తరగతి సభ్యులు, ప్రభుత్వ మరియు ప్రైవేట్ వ్యక్తుల దృశ్యమానతను నియంత్రించడంలో ప్రాప్యత స్పేసర్లు ఎలా సహాయపడతాయో మేము అర్థం చేసుకున్నాము.
ఈ మాడ్యూల్లో, తరగతి సభ్యులు, ప్రభుత్వ మరియు ప్రైవేట్ వ్యక్తుల దృశ్యమానతను నియంత్రించడంలో ప్రాప్యత స్పేసర్లు ఎలా సహాయపడతాయో మేము అర్థం చేసుకున్నాము.
ఒక తరగతి అమలు గురించి సమాచారాన్ని దాచడానికి, ఇంటర్ఫేస్ ద్వారా ప్రవర్తనను బహిర్గతం చేయడానికి మేము చూసినట్లుగా వీటిని ఉపయోగించవచ్చు మరియు గేట్-సెట్ యొక్క పద్ధతులు నిర్దిష్ట ఇడియమ్లను కలిగి ఉన్నాయని మేము ప్రత్యేకంగా చూశాము C ++ నుండి గొప్ప ధాన్యం నియంత్రణను అందిస్తుంది.
ఒక తరగతి అమలు గురించి సమాచారాన్ని దాచడానికి, ఇంటర్ఫేస్ ద్వారా ప్రవర్తనను బహిర్గతం చేయడానికి మేము చూసినట్లుగా వీటిని ఉపయోగించవచ్చు మరియు గేట్-సెట్ యొక్క పద్ధతులు నిర్దిష్ట ఇడియమ్లను కలిగి ఉన్నాయని మేము ప్రత్యేకంగా చూశాము C ++ నుండి గొప్ప ధాన్యం నియంత్రణను అందిస్తుంది.
మీ రూపకల్పనలో మీరు అందించాలనుకుంటున్న డేటా సభ్యుల పరంగా ఇంటర్ఫేస్.
మీ రూపకల్పనలో మీరు అందించాలనుకుంటున్న డేటా సభ్యుల పరంగా ఇంటర్ఫేస్.
ప్రస్తుతానికి, క్లాస్ డేటా సభ్యులను సూచించే హెడర్ ఫైల్లో అమలు మరియు ఇంటర్ఫేస్ హెడర్ ఫైల్గా వేరు చేయబడుతుందని మేము ఇప్పుడు తీసుకుంటాము మరియు క్లాస్ పద్ధతులు నిర్వచించాయి.
ప్రస్తుతానికి, క్లాస్ డేటా సభ్యులను సూచించే హెడర్ ఫైల్లో అమలు మరియు ఇంటర్ఫేస్ హెడర్ ఫైల్గా వేరు చేయబడుతుందని మేము ఇప్పుడు తీసుకుంటాము మరియు క్లాస్ పద్ధతులు నిర్వచించాయి.
క్లాస్ ఇంప్లిమెంటేషన్ ఫైల్, ఇది పద్ధతుల యొక్క అన్ని అమలు కోడ్ను కలిగి ఉంటుంది మరియు అప్లికేషన్లో క్లాస్ హెడర్ ఫైల్ ఉండవచ్చు, క్లాస్ హెడర్ ఫైల్లో పద్ధతుల వాడకం ఉంటుంది మరియు అప్లికేషన్ను పని చేయడానికి అనుమతిస్తుంది.
క్లాస్ ఇంప్లిమెంటేషన్ ఫైల్, ఇది పద్ధతుల యొక్క అన్ని అమలు కోడ్ను కలిగి ఉంటుంది మరియు అప్లికేషన్లో క్లాస్ హెడర్ ఫైల్ ఉండవచ్చు, క్లాస్ హెడర్ ఫైల్లో పద్ధతుల వాడకం ఉంటుంది మరియు అప్లికేషన్ను పని చేయడానికి అనుమతిస్తుంది.
అందువల్ల, సి ++ గురించి లోతైన అవగాహన లేకుండా, మీరు స్ట్రింగ్ మాత్రమే ఉపయోగించడం ప్రారంభించవచ్చు మరియు మీ అన్ని ప్రోగ్రామ్లను తెలివిగా మరియు సులభంగా వ్రాయవచ్చు.
అందువల్ల, సి ++ గురించి లోతైన అవగాహన లేకుండా, మీరు స్ట్రింగ్ మాత్రమే ఉపయోగించడం ప్రారంభించవచ్చు మరియు మీ అన్ని ప్రోగ్రామ్లను తెలివిగా మరియు సులభంగా వ్రాయవచ్చు.
ఈ మాడ్యూల్లో మనం చూపించాము - మనం శ్రేణులతో ఎలా పని చేయవచ్చు, వెక్టర్ వాస్తవానికి శ్రేణులను వేరియబుల్ పరిమాణానికి ఎలా సులభతరం చేస్తుంది మరియు స్ట్రింగ్ రకాలను ఉపయోగిస్తుంది C ++ లో తీగలను చాలా సులభంగా ఎలా నిర్వహించాలి.
ఈ మాడ్యూల్లో మనం చూపించాము - మనం శ్రేణులతో ఎలా పని చేయవచ్చు, వెక్టర్ వాస్తవానికి శ్రేణులను వేరియబుల్ పరిమాణానికి ఎలా సులభతరం చేస్తుంది మరియు స్ట్రింగ్ రకాలను ఉపయోగిస్తుంది C ++ లో తీగలను చాలా సులభంగా ఎలా నిర్వహించాలి.
ఈ పద్ధతి క్యాంపస్ పేరు స్థలంలో కూడా ఇదే విధంగా పేరు పెట్టబడింది.
ఈ పద్ధతి క్యాంపస్ పేరు స్థలంలో కూడా ఇదే విధంగా పేరు పెట్టబడింది.
కాబట్టి, ఒక పద్ధతి ప్రమాణానికి కాంప్లెక్స్ :: ప్రమాణం () అనే పేరు ఉంది.
కాబట్టి, ఒక పద్ధతి ప్రమాణానికి కాంప్లెక్స్ :: ప్రమాణం () అనే పేరు ఉంది.
వస్తువులు తరగతుల ఇన్స్టాంటియేషన్స్ మరియు అవి వేగవంతం అయినప్పుడు ప్రారంభించబడతాయి, అక్షం డాట్ ఆపరేటర్ యొక్క ఉపయోగాన్ని సూచించడానికి ఉపయోగించబడుతుంది మరియు ప్రత్యేకమైన "ఈ" పాయింటర్ను కలిగి ఉంటుంది, ఇది ప్రతి వస్తువును దాని స్వంత చిరునామా ద్వారా గుర్తిస్తుంది, దీనిని ఉపయోగించవచ్చు వివిధ మార్గాలు.
వస్తువులు తరగతుల ఇన్స్టాంటియేషన్స్ మరియు అవి వేగవంతం అయినప్పుడు ప్రారంభించబడతాయి, అక్షం డాట్ ఆపరేటర్ యొక్క ఉపయోగాన్ని సూచించడానికి ఉపయోగించబడుతుంది మరియు ప్రత్యేకమైన "ఈ" పాయింటర్ను కలిగి ఉంటుంది, ఇది ప్రతి వస్తువును దాని స్వంత చిరునామా ద్వారా గుర్తిస్తుంది, దీనిని ఉపయోగించవచ్చు వివిధ మార్గాలు.
కానీ మనం చూసే క్లాస్ లో స్ట్రక్చర్ ఇంకా చాలా పనులు చేస్తుంది.
కానీ మనం చూసే క్లాస్ లో స్ట్రక్చర్ ఇంకా చాలా పనులు చేస్తుంది.
కాబట్టి మనం కొన్ని భిన్నమైన మరియు పెద్ద ఉదాహరణ తీసుకుందాం.
కాబట్టి మనం కొన్ని భిన్నమైన మరియు పెద్ద ఉదాహరణ తీసుకుందాం.
ఇక్కడ మనం ఒక దీర్ఘచతురస్రాన్ని నిర్వచించటానికి ప్రయత్నిస్తున్నాము మరియు ఇది ఒక ప్రత్యేక రకం దీర్ఘచతురస్రం, ఈ దీర్ఘచతురస్రంలోని దీర్ఘచతురస్రం ఈ దీర్ఘచతురస్రం దీర్ఘచతురస్రం అని చెబుతుంది. దీని అక్షం x మరియు y- అక్షానికి సమాంతరంగా ఉంటుంది.
ఇక్కడ మనం ఒక దీర్ఘచతురస్రాన్ని నిర్వచించటానికి ప్రయత్నిస్తున్నాము మరియు ఇది ఒక ప్రత్యేక రకం దీర్ఘచతురస్రం, ఈ దీర్ఘచతురస్రంలోని దీర్ఘచతురస్రం ఈ దీర్ఘచతురస్రం దీర్ఘచతురస్రం అని చెబుతుంది. దీని అక్షం x మరియు y- అక్షానికి సమాంతరంగా ఉంటుంది.
కాబట్టి, నేను కేవలం రెండు మూలలతో, వికర్ణంగా వ్యతిరేక మూలలో, ఎగువ ఎడమ మరియు దీర్ఘచతురస్రం యొక్క కుడి దిగువ మూలలో పేర్కొంటే, అప్పుడు దీర్ఘచతురస్రం పూర్తిగా పేర్కొనబడింది.
కాబట్టి, నేను కేవలం రెండు మూలలతో, వికర్ణంగా వ్యతిరేక మూలలో, ఎగువ ఎడమ మరియు దీర్ఘచతురస్రం యొక్క కుడి దిగువ మూలలో పేర్కొంటే, అప్పుడు దీర్ఘచతురస్రం పూర్తిగా పేర్కొనబడింది.
ఇది చేయుటకు, మొదట x మరియు y అనే రెండు కోఆర్డినేట్ల అగ్రిగేషన్ రూపంలో పాయింట్లను ఇచ్చే ఒక నిర్మాణాన్ని మేము నిర్వచించాము మరియు తరువాత మేము రెండు పాయింట్లను తీసుకొని వాటిని దీర్ఘచతురస్రానికి వికర్ణంగా రెండు వ్యతిరేక బిందువులుగా పేర్కొంటాము. ఇవ్వండి.
ఇది చేయుటకు, మొదట x మరియు y అనే రెండు కోఆర్డినేట్ల అగ్రిగేషన్ రూపంలో పాయింట్లను ఇచ్చే ఒక నిర్మాణాన్ని మేము నిర్వచించాము మరియు తరువాత మేము రెండు పాయింట్లను తీసుకొని వాటిని దీర్ఘచతురస్రానికి వికర్ణంగా రెండు వ్యతిరేక బిందువులుగా పేర్కొంటాము. ఇవ్వండి.
ఇది పూర్తయిన తర్వాత, నేను ఇక్కడ ఒక దీర్ఘచతురస్రాన్ని నిర్వచించగలను, దీర్ఘచతురస్రం r.
ఇది పూర్తయిన తర్వాత, నేను ఇక్కడ ఒక దీర్ఘచతురస్రాన్ని నిర్వచించగలను, దీర్ఘచతురస్రం r.
మీరు ఇక్కడ మొదటి {0, 2} సంజ్ఞామానాన్ని చూడవచ్చు, మొదటి జత వంకర కలుపులలో ఎడమ ఎగువ పాయింట్, {5, 7} అంటే పాయింట్ దిగువ కుడి.
మీరు ఇక్కడ మొదటి {0, 2} సంజ్ఞామానాన్ని చూడవచ్చు, మొదటి జత వంకర కలుపులలో ఎడమ ఎగువ పాయింట్, {5, 7} అంటే పాయింట్ దిగువ కుడి.
మరియు రెండూ కలిసి మొత్తం దీర్ఘచతురస్రం అని అర్థం.
మరియు రెండూ కలిసి మొత్తం దీర్ఘచతురస్రం అని అర్థం.
కాబట్టి, వ్యాఖ్యలలో, నేను 0, 2 ను మొదటి బిందువుగా పేర్కొంటే, నేను నిజంగా R ని దీర్ఘచతురస్రం (దీర్ఘచతురస్రం) యొక్క పేరు అని సూచిస్తున్నాను r. TL ఒక ఎగువ ఎడమ బిందువు, డాట్ x ( .x) అనేది 0 కోఆర్డినేట్.
కాబట్టి, వ్యాఖ్యలలో, నేను 0, 2 ను మొదటి బిందువుగా పేర్కొంటే, నేను నిజంగా R ని దీర్ఘచతురస్రం (దీర్ఘచతురస్రం) యొక్క పేరు అని సూచిస్తున్నాను r. TL ఒక ఎగువ ఎడమ బిందువు, డాట్ x ( .x) అనేది 0 కోఆర్డినేట్.
అదేవిధంగా, ఎగువ ఎడమ బిందువు యొక్క భాగం అయిన r.TL.y విలువ 2 ను పొందుతుంది.
అదేవిధంగా, ఎగువ ఎడమ బిందువు యొక్క భాగం అయిన r.TL.y విలువ 2 ను పొందుతుంది.
కాబట్టి, ఈ ప్రారంభించడం ద్వారా ఈ విలువలు అన్నీ సెట్ చేయబడుతున్నాయి, ఆపై నేను వాటిని ప్రింట్ చేయగలను.
కాబట్టి, ఈ ప్రారంభించడం ద్వారా ఈ విలువలు అన్నీ సెట్ చేయబడుతున్నాయి, ఆపై నేను వాటిని ప్రింట్ చేయగలను.
బయట.
బయట.
అదేవిధంగా, నేను క్లాస్ ఉపయోగించి మొత్తం విషయం వ్రాయగలను.
అదేవిధంగా, నేను క్లాస్ ఉపయోగించి మొత్తం విషయం వ్రాయగలను.
మునుపటిలాగే తేడా జరుగుతోంది.
మునుపటిలాగే తేడా జరుగుతోంది.
నేను దీన్ని ఈ విధంగా ప్రారంభించగలను మరియు నేను కౌట్ ఉపయోగించి ప్రింట్ చేయగలను.
నేను దీన్ని ఈ విధంగా ప్రారంభించగలను మరియు నేను కౌట్ ఉపయోగించి ప్రింట్ చేయగలను.
కాబట్టి, ఇది తరగతిని ఉపయోగించటానికి మరొక ఉదాహరణను చూపుతోంది.
కాబట్టి, ఇది తరగతిని ఉపయోగించటానికి మరొక ఉదాహరణను చూపుతోంది.
ఇక్కడ దీర్ఘచతురస్రం - దీర్ఘచతురస్రంలోని డేటా సభ్యులు వాస్తవానికి ఏ మూల రకానికి చెందినవారు కాదు, కానీ అవి వినియోగదారు నిర్వచించిన డేటా రకాలు, అవి తరగతి వస్తువు, అవి ఆ దశను సూచిస్తాయి. నేను ఇప్పటికే నిర్వచించిన తరగతుల ఉదాహరణలు ఉన్నాయి.
ఇక్కడ దీర్ఘచతురస్రం - దీర్ఘచతురస్రంలోని డేటా సభ్యులు వాస్తవానికి ఏ మూల రకానికి చెందినవారు కాదు, కానీ అవి వినియోగదారు నిర్వచించిన డేటా రకాలు, అవి తరగతి వస్తువు, అవి ఆ దశను సూచిస్తాయి. నేను ఇప్పటికే నిర్వచించిన తరగతుల ఉదాహరణలు ఉన్నాయి.
మనం ఇంతకుముందు చర్చించిన స్టాక్ యొక్క మూడవ ఉదాహరణ తీసుకుందాం.
మనం ఇంతకుముందు చర్చించిన స్టాక్ యొక్క మూడవ ఉదాహరణ తీసుకుందాం.
కాబట్టి, స్టాక్లో, మనకు మిశ్రమ డేటా రకాల కలయిక ఉంది, స్టాక్ యొక్క మూలకాలను పట్టుకోవటానికి మనకు అక్షర శ్రేణి ఉంది, ఇది అక్షరాల స్టాక్, మనకు హెడర్ మార్కర్ ఉంది, ఇది స్టాక్లోని సూచిక, ఇది శీర్షం ఎక్కడ ఉందో చూపిస్తుంది వాస్తవానికి ఉనికిలో ఉంది.
కాబట్టి, స్టాక్లో, మనకు మిశ్రమ డేటా రకాల కలయిక ఉంది, స్టాక్ యొక్క మూలకాలను పట్టుకోవటానికి మనకు అక్షర శ్రేణి ఉంది, ఇది అక్షరాల స్టాక్, మనకు హెడర్ మార్కర్ ఉంది, ఇది స్టాక్లోని సూచిక, ఇది శీర్షం ఎక్కడ ఉందో చూపిస్తుంది వాస్తవానికి ఉనికిలో ఉంది.
కాబట్టి, నేను ఇక్కడ లేదా ఇక్కడ స్టాక్ వేరియబుల్ను నిర్వచించగలను; మరియు స్పష్టంగా, నేను స్టాక్ను ఉపయోగించడం ప్రారంభించే ముందు, స్టాక్ (స్టాక్) ఖాళీగా ఉందని నిర్ధారించుకోవాలి, ఇది టాప్ ఇండెక్స్ మైనస్ 1 (-1) ద్వారా పేర్కొనబడింది.
కాబట్టి, నేను ఇక్కడ లేదా ఇక్కడ స్టాక్ వేరియబుల్ను నిర్వచించగలను; మరియు స్పష్టంగా, నేను స్టాక్ను ఉపయోగించడం ప్రారంభించే ముందు, స్టాక్ (స్టాక్) ఖాళీగా ఉందని నిర్ధారించుకోవాలి, ఇది టాప్ ఇండెక్స్ మైనస్ 1 (-1) ద్వారా పేర్కొనబడింది.
కాబట్టి, నేను టాప్ ఇండెక్స్ -1 ను ప్రారంభిస్తాను, ఆపై నేను దానిని స్టాక్ ద్వారా ఉపయోగించగలను, అది నిర్మాణం ద్వారా నిర్వచించబడినా లేదా వేర్వేరు అల్గోరిథంలను వేర్వేరు సమస్యలను పరిష్కరించడానికి ఉపయోగిస్తున్నా. తరగతి ద్వారా నిర్వచించండి.
కాబట్టి, నేను టాప్ ఇండెక్స్ -1 ను ప్రారంభిస్తాను, ఆపై నేను దానిని స్టాక్ ద్వారా ఉపయోగించగలను, అది నిర్మాణం ద్వారా నిర్వచించబడినా లేదా వేర్వేరు అల్గోరిథంలను వేర్వేరు సమస్యలను పరిష్కరించడానికి ఉపయోగిస్తున్నా. తరగతి ద్వారా నిర్వచించండి.
కాబట్టి, ఇవి మీరు చూడగలిగే విభిన్న ఉదాహరణలు, ఒక తరగతి యొక్క మూల భాగం ఒక కీవర్డ్ వలె ఒక తరగతి అని మేము చూపిస్తాము, దానికి ఒక పేరు. ఒక పేరు మరియు ఐడెంటిఫైయర్, దీనికి చాలా మంది డేటా సభ్యులు ఉన్నారు.
కాబట్టి, ఇవి మీరు చూడగలిగే విభిన్న ఉదాహరణలు, ఒక తరగతి యొక్క మూల భాగం ఒక కీవర్డ్ వలె ఒక తరగతి అని మేము చూపిస్తాము, దానికి ఒక పేరు. ఒక పేరు మరియు ఐడెంటిఫైయర్, దీనికి చాలా మంది డేటా సభ్యులు ఉన్నారు.
ప్రతి డేటా సభ్యుడు నిర్మాణంలో వేరియబుల్ డిక్లరేషన్ స్టైల్గా నిర్వచించబడతాడు మరియు క్లాస్ పేరును ఉపయోగించి, ఉదా. గోస్ అని పిలువబడే క్లాస్ రకాలను వేరియబుల్స్గా ప్రకటించవచ్చు.
ప్రతి డేటా సభ్యుడు నిర్మాణంలో వేరియబుల్ డిక్లరేషన్ స్టైల్గా నిర్వచించబడతాడు మరియు క్లాస్ పేరును ఉపయోగించి, ఉదా. గోస్ అని పిలువబడే క్లాస్ రకాలను వేరియబుల్స్గా ప్రకటించవచ్చు.
కాబట్టి, ఇది ఒక ఉదాహరణ లేదా దానిని ఒక వస్తువు అంటారు.
కాబట్టి, ఇది ఒక ఉదాహరణ లేదా దానిని ఒక వస్తువు అంటారు.
కాబట్టి, s తరగతి అనేది స్టాక్ యొక్క వస్తువు.
కాబట్టి, s తరగతి అనేది స్టాక్ యొక్క వస్తువు.
మరియు మనకు ఆ వస్తువు ఉన్న తర్వాత, మేము డేటా సభ్యుడిని ఉపయోగించవచ్చు, ఇక్కడ డేటా సభ్యుడు డాట్ సభ్యుల సంజ్ఞామానాన్ని ఉపయోగించి పైభాగంలో ఉంటుంది.
మరియు మనకు ఆ వస్తువు ఉన్న తర్వాత, మేము డేటా సభ్యుడిని ఉపయోగించవచ్చు, ఇక్కడ డేటా సభ్యుడు డాట్ సభ్యుల సంజ్ఞామానాన్ని ఉపయోగించి పైభాగంలో ఉంటుంది.
కాబట్టి, తరగతి అనేది ఒకటి లేదా అంతకంటే ఎక్కువ డేటా సభ్యులను కలిసి ఉంచగల సమితి అని మేము మొదట చూపిస్తాము మరియు ఆ తరగతి యొక్క వస్తువు (ల) ను వెంటనే నింపండి లేదా సి ++ ఆ రకమైన వేరియబుల్స్ ను యంత్రాంగాలను ఉపయోగించి నిర్వచించటానికి అనుమతిస్తుంది.
కాబట్టి, తరగతి అనేది ఒకటి లేదా అంతకంటే ఎక్కువ డేటా సభ్యులను కలిసి ఉంచగల సమితి అని మేము మొదట చూపిస్తాము మరియు ఆ తరగతి యొక్క వస్తువు (ల) ను వెంటనే నింపండి లేదా సి ++ ఆ రకమైన వేరియబుల్స్ ను యంత్రాంగాలను ఉపయోగించి నిర్వచించటానికి అనుమతిస్తుంది.
కాబట్టి, మళ్ళించడానికి, తరగతి అనేది ఒక రకమైన అమలు అని మేము చూశాము, దానిలో ఎక్కువ భాగం చూస్తాము.
కాబట్టి, మళ్ళించడానికి, తరగతి అనేది ఒక రకమైన అమలు అని మేము చూశాము, దానిలో ఎక్కువ భాగం చూస్తాము.
మూడు రకాలను సంక్లిష్ట రకం, దీర్ఘచతురస్రం మరియు పాయింట్ రకం మరియు స్టాక్ రకంగా చేయడానికి మూడు ప్రయత్నాలు చూశాము.
మూడు రకాలను సంక్లిష్ట రకం, దీర్ఘచతురస్రం మరియు పాయింట్ రకం మరియు స్టాక్ రకంగా చేయడానికి మూడు ప్రయత్నాలు చూశాము.
తరగతి డేటా సభ్యులను కలిగి ఉంటుందని మేము చూపించాము, ఇది నేమ్స్పేస్ను నిర్వచిస్తుంది, నేను ఒక కాంప్లెక్స్ను నిర్వచిస్తున్నానని చెప్పినప్పుడు, నా ప్రాంగణంలోని డేటా సభ్యులందరికీ వాస్తవానికి ఒక పేరు ఉంది, ఇది సంక్లిష్టమైన, తరగతి పేరు ద్వారా అర్హత పొందింది.
తరగతి డేటా సభ్యులను కలిగి ఉంటుందని మేము చూపించాము, ఇది నేమ్స్పేస్ను నిర్వచిస్తుంది, నేను ఒక కాంప్లెక్స్ను నిర్వచిస్తున్నానని చెప్పినప్పుడు, నా ప్రాంగణంలోని డేటా సభ్యులందరికీ వాస్తవానికి ఒక పేరు ఉంది, ఇది సంక్లిష్టమైన, తరగతి పేరు ద్వారా అర్హత పొందింది.
మరియు ఇది తార్కికంగా డేటాను సేకరిస్తోంది.
మరియు ఇది తార్కికంగా డేటాను సేకరిస్తోంది.
వస్తువుల ఉదాహరణల పరంగా, ప్రతి రకం తరగతికి, మేము నిర్వచించిన ప్రతి మూడు తరగతులకు, మేము ఆ వస్తువులను లేదా వస్తువులను వేర్వేరు సందర్భాల్లో నిర్వచించాము మరియు డేటా సభ్యులకు ప్రాప్యత "." డాట్ ఆపరేషన్ ద్వారా జరుగుతుంది.
వస్తువుల ఉదాహరణల పరంగా, ప్రతి రకం తరగతికి, మేము నిర్వచించిన ప్రతి మూడు తరగతులకు, మేము ఆ వస్తువులను లేదా వస్తువులను వేర్వేరు సందర్భాల్లో నిర్వచించాము మరియు డేటా సభ్యులకు ప్రాప్యత "." డాట్ ఆపరేషన్ ద్వారా జరుగుతుంది.
ఇప్పటివరకు, మనం చూసినవి మనం నిర్మాణాలుగా చేయగల విషయం.
ఇప్పటివరకు, మనం చూసినవి మనం నిర్మాణాలుగా చేయగల విషయం.
ఇప్పుడు మనం క్లాస్ డెఫినిషన్ ద్వారా నిర్మాణంలో ఏమి చేయగలమో దాని నుండి దూరంగా వెళ్ళడానికి మొదటి పెద్ద తేడా లేదా మొదటి పెద్ద అడుగు చేయబోతున్నాం.
ఇప్పుడు మనం క్లాస్ డెఫినిషన్ ద్వారా నిర్మాణంలో ఏమి చేయగలమో దాని నుండి దూరంగా వెళ్ళడానికి మొదటి పెద్ద తేడా లేదా మొదటి పెద్ద అడుగు చేయబోతున్నాం.
కాబట్టి, దయచేసి దీన్ని చాలా జాగ్రత్తగా అనుసరించండి.
కాబట్టి, దయచేసి దీన్ని చాలా జాగ్రత్తగా అనుసరించండి.
మేము సంక్లిష్టమైన ఉదాహరణలకు తిరిగి వస్తున్నాము.
మేము సంక్లిష్టమైన ఉదాహరణలకు తిరిగి వస్తున్నాము.
కాబట్టి, ఈ భాగం సాధారణం, నిర్మాణం యొక్క నిర్వచనం ప్రకారం మీకు ఇక్కడ డేటా సభ్యులు ఉన్నారు, డేటా సభ్యుల తరగతి యొక్క నిర్వచనం వలె మాకు అదే డేటా ఉంది.
కాబట్టి, ఈ భాగం సాధారణం, నిర్మాణం యొక్క నిర్వచనం ప్రకారం మీకు ఇక్కడ డేటా సభ్యులు ఉన్నారు, డేటా సభ్యుల తరగతి యొక్క నిర్వచనం వలె మాకు అదే డేటా ఉంది.
ఇప్పుడు, నేను సి లో ఇంత క్లిష్టమైన సంఖ్యను కలిగి ఉంటే, నేను స్లైడ్ యొక్క ఎడమ వైపు చూస్తున్నాను, అప్పుడు నేను చాలా రకాల ఫంక్షన్లను నిర్వచించగలను, నేను ఒక ఫంక్షన్ (ఫంక్షన్) అని చెప్తాను) ప్రమాణాన్ని నిర్వచిస్తుంది, ఇది మరింత నిర్వచించగలదు అటువంటి సంక్లిష్ట సంఖ్య ఇక్కడ సి.
ఇప్పుడు, నేను సి లో ఇంత క్లిష్టమైన సంఖ్యను కలిగి ఉంటే, నేను స్లైడ్ యొక్క ఎడమ వైపు చూస్తున్నాను, అప్పుడు నేను చాలా రకాల ఫంక్షన్లను నిర్వచించగలను, నేను ఒక ఫంక్షన్ (ఫంక్షన్) అని చెప్తాను) ప్రమాణాన్ని నిర్వచిస్తుంది, ఇది మరింత నిర్వచించగలదు అటువంటి సంక్లిష్ట సంఖ్య ఇక్కడ సి.
దాని ఆదర్శం
దాని ఆదర్శం
తరగతి యొక్క నిజమైన మరియు inary హాత్మక భాగాల యొక్క ఈ మొత్తాన్ని ఆదర్శం ఎలా లెక్కిస్తుందో మీ అందరికీ తెలుసు.
తరగతి యొక్క నిజమైన మరియు inary హాత్మక భాగాల యొక్క ఈ మొత్తాన్ని ఆదర్శం ఎలా లెక్కిస్తుందో మీ అందరికీ తెలుసు.
ఆపై వారు ఆ మొత్తంలో ఒక వర్గమూలాన్ని తీసుకుంటారు, మీరు సంక్లిష్ట సంఖ్య యొక్క విలువను పొందుతారు లేదా మేము సంక్లిష్ట సంఖ్యను నిజమైన ప్లస్ j imag హాత్మక భాగం రకం సంజ్ఞామానం ముద్రణలో ముద్రించవచ్చు.ఈ విలువకు మరొక ఫంక్షన్ వ్రాయగల విలువ మరియు మొదలైనవి.
ఆపై వారు ఆ మొత్తంలో ఒక వర్గమూలాన్ని తీసుకుంటారు, మీరు సంక్లిష్ట సంఖ్య యొక్క విలువను పొందుతారు లేదా మేము సంక్లిష్ట సంఖ్యను నిజమైన ప్లస్ j imag హాత్మక భాగం రకం సంజ్ఞామానం ముద్రణలో ముద్రించవచ్చు.ఈ విలువకు మరొక ఫంక్షన్ వ్రాయగల విలువ మరియు మొదలైనవి.
కాబట్టి, ఈ ఫంక్షన్లను నేను ఇప్పటికే సి లో నిర్వచించిన నిర్మాణాత్మక సంక్లిష్ట రకములతో వ్రాయవచ్చు మరియు ఇవన్నీ సి ఫంక్షన్లు సాధారణంగా గ్లోబల్ ఫంక్షన్లు అని మనకు తెలుసు., ఆపై నేను దానిని ప్రింట్ చేయడానికి ఉపయోగించవచ్చు మరియు నేను దీన్ని చేస్తే కాంప్లెక్స్ సంఖ్య ముద్రించబడుతుంది.
కాబట్టి, ఈ ఫంక్షన్లను నేను ఇప్పటికే సి లో నిర్వచించిన నిర్మాణాత్మక సంక్లిష్ట రకములతో వ్రాయవచ్చు మరియు ఇవన్నీ సి ఫంక్షన్లు సాధారణంగా గ్లోబల్ ఫంక్షన్లు అని మనకు తెలుసు., ఆపై నేను దానిని ప్రింట్ చేయడానికి ఉపయోగించవచ్చు మరియు నేను దీన్ని చేస్తే కాంప్లెక్స్ సంఖ్య ముద్రించబడుతుంది.
కాబట్టి, ఇది ఎలా ముద్రించబడుతుందో మీరు చూడాలనుకుంటే, ఇది ప్రింట్ చేస్తుంది. కాబట్టి, సంక్లిష్ట సంఖ్య 4.2, 5.3, ఇది 4.2+ j 5.3 యొక్క ప్రమాణం 6.7624 అని ముద్రిస్తుంది.
కాబట్టి, ఇది ఎలా ముద్రించబడుతుందో మీరు చూడాలనుకుంటే, ఇది ప్రింట్ చేస్తుంది. కాబట్టి, సంక్లిష్ట సంఖ్య 4.2, 5.3, ఇది 4.2+ j 5.3 యొక్క ప్రమాణం 6.7624 అని ముద్రిస్తుంది.
ఇప్పుడు, సి ++ ని జాగ్రత్తగా చూద్దాం.
ఇప్పుడు, సి ++ ని జాగ్రత్తగా చూద్దాం.
ఇక్కడ నేను ప్రామాణిక ఫంక్షన్ను కూడా నిర్వచిస్తున్నాను, కానీ తేడాతో.
ఇక్కడ నేను ప్రామాణిక ఫంక్షన్ను కూడా నిర్వచిస్తున్నాను, కానీ తేడాతో.
నిర్మాణంలో, నిర్మాణం పరంగా, నిర్మాణం యొక్క నిర్వచనం భిన్నంగా ఉంటుంది, నా ఫంక్షన్ నిర్వచనం భిన్నంగా ఉంటుంది, కానీ ఇక్కడ తరగతి యొక్క నా నిర్వచనం, ఇది సంక్లిష్టతకు నా మొత్తం తరగతి నిర్వచనం, మరియు నా ఫంక్షన్ తరగతి. యొక్క నిర్వచనంలో ఒక భాగం ( తరగతి).
నిర్మాణంలో, నిర్మాణం పరంగా, నిర్మాణం యొక్క నిర్వచనం భిన్నంగా ఉంటుంది, నా ఫంక్షన్ నిర్వచనం భిన్నంగా ఉంటుంది, కానీ ఇక్కడ తరగతి యొక్క నా నిర్వచనం, ఇది సంక్లిష్టతకు నా మొత్తం తరగతి నిర్వచనం, మరియు నా ఫంక్షన్ తరగతి. యొక్క నిర్వచనంలో ఒక భాగం ( తరగతి).
అటువంటి ఫంక్షన్లను పిలుస్తారు, చాలా సహజంగా సభ్యుల ఫంక్షన్లు క్లాస్ క్లాస్ కాంప్లెక్స్లో సభ్యురాలిగా పిలువబడతాయి, ఇది డేటా సభ్యుడు అని మేము చెప్తాము, అదేవిధంగా "డబుల్ కట్టుబాటు ()" ఈ ఫంక్షన్ కూడా ఒక సభ్యుడు తరగతి పరిధి.
అటువంటి ఫంక్షన్లను పిలుస్తారు, చాలా సహజంగా సభ్యుల ఫంక్షన్లు క్లాస్ క్లాస్ కాంప్లెక్స్లో సభ్యురాలిగా పిలువబడతాయి, ఇది డేటా సభ్యుడు అని మేము చెప్తాము, అదేవిధంగా "డబుల్ కట్టుబాటు ()" ఈ ఫంక్షన్ కూడా ఒక సభ్యుడు తరగతి పరిధి.
మరియు దీనిని సభ్యుల ఫంక్షన్ లేదా పద్ధతి అంటారు.
మరియు దీనిని సభ్యుల ఫంక్షన్ లేదా పద్ధతి అంటారు.
క్లాస్ యొక్క నిర్వచనంలో ఇతర ఫంక్షన్ ప్రింట్ కూడా ఉందని మీరు చూడవచ్చు మరియు ప్రింట్ మరొక సభ్యుల ఫంక్షన్.
క్లాస్ యొక్క నిర్వచనంలో ఇతర ఫంక్షన్ ప్రింట్ కూడా ఉందని మీరు చూడవచ్చు మరియు ప్రింట్ మరొక సభ్యుల ఫంక్షన్.
కాబట్టి, ఇది కొన్ని సభ్యుల ఫంక్షన్ సి ++ కోసం పూర్తిగా క్రొత్త భావన, దీనికి సి లో సమాంతరంగా లేదు.
కాబట్టి, ఇది కొన్ని సభ్యుల ఫంక్షన్ సి ++ కోసం పూర్తిగా క్రొత్త భావన, దీనికి సి లో సమాంతరంగా లేదు.
మరియు ఈ సభ్యుల ఫంక్షన్తో, క్లాస్ కాంప్లెక్స్ ఇచ్చిన నా ఆబ్జెక్ట్ ఉదాహరణ ఈ తరగతికి ఒక ఉదాహరణ, ఇప్పుడు నా ఆబ్జెక్ట్ ఉదాహరణ, చెప్పండి ఈ ఉదాహరణ సి ఈ సంజ్ఞామానం లోని పద్ధతిని ఉపయోగించవచ్చు.
మరియు ఈ సభ్యుల ఫంక్షన్తో, క్లాస్ కాంప్లెక్స్ ఇచ్చిన నా ఆబ్జెక్ట్ ఉదాహరణ ఈ తరగతికి ఒక ఉదాహరణ, ఇప్పుడు నా ఆబ్జెక్ట్ ఉదాహరణ, చెప్పండి ఈ ఉదాహరణ సి ఈ సంజ్ఞామానం లోని పద్ధతిని ఉపయోగించవచ్చు.
ఇంతకుముందు, మీరు డేటా సభ్యుని సూచనతో మాత్రమే సంజ్ఞామానాన్ని చూశారు, ఇది మేము చూసిన "c.re" విషయం, అంటే సంక్లిష్ట సంఖ్య మళ్ళీ సి యొక్క డేటా అని అర్ధం. సభ్యుడిని సూచిస్తూ ఇప్పుడు నేను "సి ".
ఇంతకుముందు, మీరు డేటా సభ్యుని సూచనతో మాత్రమే సంజ్ఞామానాన్ని చూశారు, ఇది మేము చూసిన "c.re" విషయం, అంటే సంక్లిష్ట సంఖ్య మళ్ళీ సి యొక్క డేటా అని అర్ధం. సభ్యుడిని సూచిస్తూ ఇప్పుడు నేను "సి ".
ప్రింట్ "" అంటే ఆబ్జెక్ట్ సి కోసం, ఉదాహరణకు సి, నేను ఉపయోగిస్తున్నాను లేదా నేను పద్ధతి ప్రింట్ () ను ప్రారంభిస్తున్నాను.
ప్రింట్ "" అంటే ఆబ్జెక్ట్ సి కోసం, ఉదాహరణకు సి, నేను ఉపయోగిస్తున్నాను లేదా నేను పద్ధతి ప్రింట్ () ను ప్రారంభిస్తున్నాను.
ఈ పద్దతి దీన్ని చేయాల్సిన ముద్రణ, ఈ డేటా సభ్యులకు సి ఆబ్జెక్ట్లో విలువలు ఉన్నాయని మరియు తదనుగుణంగా పని చేస్తాయని ఊహిస్తూ, ఈ ముద్రణ అయిపోతుంది.
ఈ పద్దతి దీన్ని చేయాల్సిన ముద్రణ, ఈ డేటా సభ్యులకు సి ఆబ్జెక్ట్లో విలువలు ఉన్నాయని మరియు తదనుగుణంగా పని చేస్తాయని ఊహిస్తూ, ఈ ముద్రణ అయిపోతుంది.
అదేవిధంగా, నేను c.norm () ను వ్రాసి, ఇన్వోక్ చేస్తే, అది ఇతర సభ్యుల ఫంక్షన్ (ఫంక్షన్) కట్టుబాటు () ను అమలు చేస్తుంది, మరియు విలువ సి విలువ నుండి వచ్చే నిజమైన మరియు ఊహాత్మక భాగాలతో కూడా వ్యవహరిస్తుంది.
అదేవిధంగా, నేను c.norm () ను వ్రాసి, ఇన్వోక్ చేస్తే, అది ఇతర సభ్యుల ఫంక్షన్ (ఫంక్షన్) కట్టుబాటు () ను అమలు చేస్తుంది, మరియు విలువ సి విలువ నుండి వచ్చే నిజమైన మరియు ఊహాత్మక భాగాలతో కూడా వ్యవహరిస్తుంది.
ఇది పూర్తిగా కొత్త కాన్సెప్ట్ మరియు ఈ సభ్యులు పని చేస్తారు.
ఇది పూర్తిగా కొత్త కాన్సెప్ట్ మరియు ఈ సభ్యులు పని చేస్తారు.
అందువల్ల, సి వలె మనం ఏదో ఒక నిర్మాణంగా నిర్వచించినట్లయితే, దానితో మనం చేయవలసిన ప్రతి ఆపరేషన్, కొన్ని గ్లోబల్ ఫంక్షన్ల ద్వారా చేయవలసి ఉంటుంది.
అందువల్ల, సి వలె మనం ఏదో ఒక నిర్మాణంగా నిర్వచించినట్లయితే, దానితో మనం చేయవలసిన ప్రతి ఆపరేషన్, కొన్ని గ్లోబల్ ఫంక్షన్ల ద్వారా చేయవలసి ఉంటుంది.
ఎవరైనా మరియు ప్రతి ఒక్కరూ చూడవచ్చు మరియు ఉపయోగించవచ్చు.
ఎవరైనా మరియు ప్రతి ఒక్కరూ చూడవచ్చు మరియు ఉపయోగించవచ్చు.
C ++ లో, తరగతి స్వయంగా, అనేక సభ్యుల విధులు లేదా పద్ధతులను నిర్వచించగలదు, ఇది కొన్ని విధులను నిర్వహించడానికి వస్తువును అవసరమైన విధంగా అమలు చేయగలదు మరియు ఇది క్రమంగా మనం చూసేటప్పుడు వస్తువు యొక్క ప్రవర్తన అని పిలుస్తారు.
C ++ లో, తరగతి స్వయంగా, అనేక సభ్యుల విధులు లేదా పద్ధతులను నిర్వచించగలదు, ఇది కొన్ని విధులను నిర్వహించడానికి వస్తువును అవసరమైన విధంగా అమలు చేయగలదు మరియు ఇది క్రమంగా మనం చూసేటప్పుడు వస్తువు యొక్క ప్రవర్తన అని పిలుస్తారు.
కాబట్టి, మరికొన్ని ఉదాహరణలు చూద్దాం.
కాబట్టి, మరికొన్ని ఉదాహరణలు చూద్దాం.
దీర్ఘచతురస్ర పాయింట్ భాగాన్ని తిరిగి తీసుకుందాం, మీరు ఇప్పటికే ఈ భాగాన్ని చూశారు.
దీర్ఘచతురస్ర పాయింట్ భాగాన్ని తిరిగి తీసుకుందాం, మీరు ఇప్పటికే ఈ భాగాన్ని చూశారు.
ఇక్కడ మనం నిర్మాణాన్ని ఉపయోగించి సి కొరకు ఒక ఫంక్షన్ వ్రాస్తున్నాము, ఇది ఒక దీర్ఘచతురస్రం యొక్క వైశాల్యాన్ని లెక్కించే గ్లోబల్ ఫంక్షన్.
ఇక్కడ మనం నిర్మాణాన్ని ఉపయోగించి సి కొరకు ఒక ఫంక్షన్ వ్రాస్తున్నాము, ఇది ఒక దీర్ఘచతురస్రం యొక్క వైశాల్యాన్ని లెక్కించే గ్లోబల్ ఫంక్షన్.
ప్రాంతాన్ని లెక్కించడానికి సూత్రం సూటిగా ఉంటుంది, నేను దానిలోకి లోతుగా వెళ్ళను, కానీ ఇది గ్లోబల్ ఫంక్షన్ కౌంట్ (), ఇది ఒక దీర్ఘచతురస్రాన్ని పరామితిగా తీసుకొని ఆ ప్రాంతాన్ని లెక్కిస్తుంది మరియు ఇది ఎలా పనిచేస్తుంది.
ప్రాంతాన్ని లెక్కించడానికి సూత్రం సూటిగా ఉంటుంది, నేను దానిలోకి లోతుగా వెళ్ళను, కానీ ఇది గ్లోబల్ ఫంక్షన్ కౌంట్ (), ఇది ఒక దీర్ఘచతురస్రాన్ని పరామితిగా తీసుకొని ఆ ప్రాంతాన్ని లెక్కిస్తుంది మరియు ఇది ఎలా పనిచేస్తుంది.
దీనికి విరుద్ధంగా, సి ++ తరగతిలో, ఇది నా దీర్ఘచతురస్ర తరగతి, ఇదే నా పద్ధతి, నా కంప్యూట్ ఏరియా () పద్ధతి సభ్యుల ఫంక్షన్. ఇది తరగతిలో ఒక భాగం.
దీనికి విరుద్ధంగా, సి ++ తరగతిలో, ఇది నా దీర్ఘచతురస్ర తరగతి, ఇదే నా పద్ధతి, నా కంప్యూట్ ఏరియా () పద్ధతి సభ్యుల ఫంక్షన్. ఇది తరగతిలో ఒక భాగం.
కాబట్టి, నాకు దీర్ఘచతురస్రం R ఆబ్జెక్ట్ ఉన్నప్పుడు, నేను అదే డాట్ సంజ్ఞామానాన్ని ఉపయోగించి పద్ధతి లేదా సభ్యుల పనితీరును అమలు చేస్తాను, మరియు దీని అర్థం లెక్కించిన ఫీల్డ్ పని చేస్తుంది, ఇక్కడ R తక్షణం పనిచేస్తుందని అనుకుంటాను.
కాబట్టి, నాకు దీర్ఘచతురస్రం R ఆబ్జెక్ట్ ఉన్నప్పుడు, నేను అదే డాట్ సంజ్ఞామానాన్ని ఉపయోగించి పద్ధతి లేదా సభ్యుల పనితీరును అమలు చేస్తాను, మరియు దీని అర్థం లెక్కించిన ఫీల్డ్ పని చేస్తుంది, ఇక్కడ R తక్షణం పనిచేస్తుందని అనుకుంటాను.
ఇది పనిచేస్తోంది.
ఇది పనిచేస్తోంది.
కాబట్టి, ఇది TL.x ను సూచించినప్పుడు, ఇది వాస్తవానికి r వస్తువు యొక్క TL.x ను సూచిస్తుంది, ఇది ఈ ప్రత్యేక పద్ధతిని అమలు చేసింది.
కాబట్టి, ఇది TL.x ను సూచించినప్పుడు, ఇది వాస్తవానికి r వస్తువు యొక్క TL.x ను సూచిస్తుంది, ఇది ఈ ప్రత్యేక పద్ధతిని అమలు చేసింది.
ఇది సి లో ఎక్కువ, ఇది ఫంక్షన్ కాల్ అని మేము చెప్తున్నాము, ఇది సి ++ లో కూడా ఫంక్షన్ కాల్ అని మేము చెబుతూనే ఉన్నాము, కాని మీరు వేర్వేరు వస్తువుల (ఫంక్షన్) సభ్యుల ఫంక్షన్ అని పిలిచినప్పుడు, మీరు తరచూ మీరు అని చెబుతారు ఒక వస్తువు యొక్క పద్ధతిని ప్రారంభిస్తున్నారు.
ఇది సి లో ఎక్కువ, ఇది ఫంక్షన్ కాల్ అని మేము చెప్తున్నాము, ఇది సి ++ లో కూడా ఫంక్షన్ కాల్ అని మేము చెబుతూనే ఉన్నాము, కాని మీరు వేర్వేరు వస్తువుల (ఫంక్షన్) సభ్యుల ఫంక్షన్ అని పిలిచినప్పుడు, మీరు తరచూ మీరు అని చెబుతారు ఒక వస్తువు యొక్క పద్ధతిని ప్రారంభిస్తున్నారు.
ఒక తరగతి నిర్వచనంలో భాగంగా లభించే ఒక పద్ధతి లేదా సభ్యుల ఫంక్షన్, కాబట్టి C ++ లోని పద్ధతుల యొక్క ప్రాథమిక ఆలోచన.
ఒక తరగతి నిర్వచనంలో భాగంగా లభించే ఒక పద్ధతి లేదా సభ్యుల ఫంక్షన్, కాబట్టి C ++ లోని పద్ధతుల యొక్క ప్రాథమిక ఆలోచన.
మీరు చూడగలరు.
మీరు చూడగలరు.
మీరు మరింత అధ్యయనం చేసినప్పుడు మీ సమయాన్ని, ఈ ప్రెజెంటేషన్ను ఎక్కువగా తీసుకోవచ్చని మేము చాలా వివరంగా చెప్పలేము.
మీరు మరింత అధ్యయనం చేసినప్పుడు మీ సమయాన్ని, ఈ ప్రెజెంటేషన్ను ఎక్కువగా తీసుకోవచ్చని మేము చాలా వివరంగా చెప్పలేము.
ఇది డేటాను కలిగి ఉన్న స్టాక్కు పూర్తి ఉదాహరణ అని మీరు చూడవచ్చు.
ఇది డేటాను కలిగి ఉన్న స్టాక్కు పూర్తి ఉదాహరణ అని మీరు చూడవచ్చు.
ఇవి స్టాక్ యొక్క నాలుగు ఆపరేషన్లు: ఖాళీ, టాప్, పుష్ మరియు పాప్, సి లో గ్లోబల్ ఫంక్షన్లుగా ఇవ్వబడ్డాయి.
ఇవి స్టాక్ యొక్క నాలుగు ఆపరేషన్లు: ఖాళీ, టాప్, పుష్ మరియు పాప్, సి లో గ్లోబల్ ఫంక్షన్లుగా ఇవ్వబడ్డాయి.
మేము ఇక్కడ ఒక స్టాక్ యొక్క ఉదాహరణను ఉపయోగిస్తాము, దానిని టాప్ మార్కర్గా ప్రారంభించండి, దాన్ని వాడండి మరియు ఇచ్చిన స్ట్రింగ్ కోసం, మేము ఆ స్ట్రింగ్ యొక్క ప్రతి అక్షరాన్ని ప్రతిదానికి కేటాయించవచ్చు, అప్పుడు మేము వాటిని స్టాక్లోకి నెట్టివేసి, ఆపై వాటిని పాపింగ్ చేస్తూనే ఉంటాము స్టాక్ ఖాళీ అవుతుంది.
మేము ఇక్కడ ఒక స్టాక్ యొక్క ఉదాహరణను ఉపయోగిస్తాము, దానిని టాప్ మార్కర్గా ప్రారంభించండి, దాన్ని వాడండి మరియు ఇచ్చిన స్ట్రింగ్ కోసం, మేము ఆ స్ట్రింగ్ యొక్క ప్రతి అక్షరాన్ని ప్రతిదానికి కేటాయించవచ్చు, అప్పుడు మేము వాటిని స్టాక్లోకి నెట్టివేసి, ఆపై వాటిని పాపింగ్ చేస్తూనే ఉంటాము స్టాక్ ఖాళీ అవుతుంది.
మీకు తెలిసినట్లుగా ఇది స్ట్రింగ్ను రివర్స్ చేసే ప్రామాణిక అల్గోరిథం.
మీకు తెలిసినట్లుగా ఇది స్ట్రింగ్ను రివర్స్ చేసే ప్రామాణిక అల్గోరిథం.
కాబట్టి, ఈ కోడ్ ఈ గ్లోబల్ ఫంక్షన్ను ఉపయోగించి స్ట్రింగ్ను రివర్స్ చేస్తుంది.
కాబట్టి, ఈ కోడ్ ఈ గ్లోబల్ ఫంక్షన్ను ఉపయోగించి స్ట్రింగ్ను రివర్స్ చేస్తుంది.
ఇప్పుడు మేము క్లాస్ కాంప్లెక్స్ ఉపయోగించి చూపిన విధంగా చేయగలమని చూపిస్తాము, క్లాస్ దీర్ఘచతురస్రాన్ని ఉపయోగించి మేము చూపించినట్లు.
ఇప్పుడు మేము క్లాస్ కాంప్లెక్స్ ఉపయోగించి చూపిన విధంగా చేయగలమని చూపిస్తాము, క్లాస్ దీర్ఘచతురస్రాన్ని ఉపయోగించి మేము చూపించినట్లు.
క్లాస్ స్టాక్ విషయంలో, నేను డేటాను కలిగి ఉంటాను, మరియు నేను ఈ స్టాక్ ఆపరేషన్లన్నింటినీ సృష్టించగలను ఎందుకంటే మేము వాటిని సభ్యుల ఫంక్షన్లలో చేయవలసి ఉంటుంది మరియు పద్ధతి (క్లాస్)) పద్ధతిలో కొంత భాగాన్ని నిర్వహించడానికి అవసరం.
క్లాస్ స్టాక్ విషయంలో, నేను డేటాను కలిగి ఉంటాను, మరియు నేను ఈ స్టాక్ ఆపరేషన్లన్నింటినీ సృష్టించగలను ఎందుకంటే మేము వాటిని సభ్యుల ఫంక్షన్లలో చేయవలసి ఉంటుంది మరియు పద్ధతి (క్లాస్)) పద్ధతిలో కొంత భాగాన్ని నిర్వహించడానికి అవసరం.
మరియు మేము వారిని తరగతిలో భాగమైన వెంటనే, తేడాను చూడటానికి వాటిని ఉపయోగిస్తాము.
మరియు మేము వారిని తరగతిలో భాగమైన వెంటనే, తేడాను చూడటానికి వాటిని ఉపయోగిస్తాము.
మీరు ఇక్కడ నెట్టివేస్తే, స్టాక్ అంటే ఏమిటో మీరు చెప్పాలి, ఆపై మీరు ఇక్కడ ఏమి నెట్టివేస్తున్నారో, మీరు స్టాక్ s అని చెప్తారు.
మీరు ఇక్కడ నెట్టివేస్తే, స్టాక్ అంటే ఏమిటో మీరు చెప్పాలి, ఆపై మీరు ఇక్కడ ఏమి నెట్టివేస్తున్నారో, మీరు స్టాక్ s అని చెప్తారు.
కాబట్టి, మీరు స్టాక్ ఆబ్జెక్ట్ కోసం పుష్ పద్ధతిని అమలు చేస్తున్నారు మరియు మీరు ఇక్కడ ఏమి నెట్టివేస్తున్నారో చెబుతున్నారు.
కాబట్టి, మీరు స్టాక్ ఆబ్జెక్ట్ కోసం పుష్ పద్ధతిని అమలు చేస్తున్నారు మరియు మీరు ఇక్కడ ఏమి నెట్టివేస్తున్నారో చెబుతున్నారు.
అదేవిధంగా, ఖాళీగా తనిఖీ చేయడానికి, మీరు స్టాక్ ఫంక్షన్లను గ్లోబల్ ఫంక్షన్కు పాస్ చేస్తారు, ఖాళీ సభ్యుల ఫంక్షన్ ఉంది.
అదేవిధంగా, ఖాళీగా తనిఖీ చేయడానికి, మీరు స్టాక్ ఫంక్షన్లను గ్లోబల్ ఫంక్షన్కు పాస్ చేస్తారు, ఖాళీ సభ్యుల ఫంక్షన్ ఉంది.
కాబట్టి, మీరు స్టాక్ (స్టాక్) కి వెళతారు. మీరు ఈ పద్ధతిని ఖాళీగా తీసుకోండి, ఇది స్టాక్ (స్టాక్) S కు మైనస్ 1 కి సమానమైన శీర్షం ఉందో లేదో తెలుసుకోవడానికి మాకు పద్ధతి ఇస్తుంది.
కాబట్టి, మీరు స్టాక్ (స్టాక్) కి వెళతారు. మీరు ఈ పద్ధతిని ఖాళీగా తీసుకోండి, ఇది స్టాక్ (స్టాక్) S కు మైనస్ 1 కి సమానమైన శీర్షం ఉందో లేదో తెలుసుకోవడానికి మాకు పద్ధతి ఇస్తుంది.
అదేవిధంగా, ఇక్కడ టాప్ లు s.top (); అని ఆహ్వానించబడ్డారు.
అదేవిధంగా, ఇక్కడ టాప్ లు s.top (); అని ఆహ్వానించబడ్డారు.
పాప్ లు ఇక్కడ s.pop () గా చేర్చబడ్డాయి.
పాప్ లు ఇక్కడ s.pop () గా చేర్చబడ్డాయి.
కాబట్టి, ఇది గ్లోబల్ ఫంక్షన్లను ఉపయోగించటానికి వ్యతిరేకం అని మీరు చూడవచ్చు, ఇప్పుడు ఈ పద్ధతి ఇన్వొకేషన్ లేదా సభ్యుల ఫంక్షన్ డేటా ఆపరేషన్లను ఏకకాలంలో చేయడానికి అనుమతిస్తుంది, అలాగే ఆ పద్ధతులు లేదా సభ్యులను అనుమతించండి నేను వాటిని ఇవ్వడానికి నేను ఏమి చేయాలో నన్ను అనుమతిస్తుంది కలిసి ఏకీకృత కట్టలో.
కాబట్టి, ఇది గ్లోబల్ ఫంక్షన్లను ఉపయోగించటానికి వ్యతిరేకం అని మీరు చూడవచ్చు, ఇప్పుడు ఈ పద్ధతి ఇన్వొకేషన్ లేదా సభ్యుల ఫంక్షన్ డేటా ఆపరేషన్లను ఏకకాలంలో చేయడానికి అనుమతిస్తుంది, అలాగే ఆ పద్ధతులు లేదా సభ్యులను అనుమతించండి నేను వాటిని ఇవ్వడానికి నేను ఏమి చేయాలో నన్ను అనుమతిస్తుంది కలిసి ఏకీకృత కట్టలో.
మరియు ఇది ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ రూపంలో మరింత సరైన, మరింత ఖచ్చితమైన ఎన్కప్సులేషన్ లేదా అగ్రిగేషన్ ఇస్తుంది.
మరియు ఇది ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ రూపంలో మరింత సరైన, మరింత ఖచ్చితమైన ఎన్కప్సులేషన్ లేదా అగ్రిగేషన్ ఇస్తుంది.
కాబట్టి, దీనితో, మేము సాధించేది ఆ తరగతిలో కార్యకలాపాలు మరియు సభ్యుల ఫంక్షన్ పద్ధతులు మరియు ఇది OOP రూపంలో డేటా సంగ్రహణ లేదా ఎన్కప్సులేషన్ను అందిస్తుంది, మనం దీన్ని స్పష్టంగా అర్థం చేసుకోవచ్చు.
కాబట్టి, దీనితో, మేము సాధించేది ఆ తరగతిలో కార్యకలాపాలు మరియు సభ్యుల ఫంక్షన్ పద్ధతులు మరియు ఇది OOP రూపంలో డేటా సంగ్రహణ లేదా ఎన్కప్సులేషన్ను అందిస్తుంది, మనం దీన్ని స్పష్టంగా అర్థం చేసుకోవచ్చు.
మరియు వస్తువు యొక్క సందర్భంలో సభ్యుల విధులు దాని ప్రవర్తనను నిర్వచించాయని మనకు తెలుసు; మేము చూసినట్లుగా, స్టాక్లోని సభ్యుడు ఫంక్షన్లైన పుష్, పాప్, ఖాళీ, టాప్ స్టాక్ ప్రదర్శించాల్సిన అన్ని LIFO ప్రవర్తనను నిర్వచిస్తుంది.
మరియు వస్తువు యొక్క సందర్భంలో సభ్యుల విధులు దాని ప్రవర్తనను నిర్వచించాయని మనకు తెలుసు; మేము చూసినట్లుగా, స్టాక్లోని సభ్యుడు ఫంక్షన్లైన పుష్, పాప్, ఖాళీ, టాప్ స్టాక్ ప్రదర్శించాల్సిన అన్ని LIFO ప్రవర్తనను నిర్వచిస్తుంది.
ప్రయోజనం ఏమిటంటే, మేము సి ఉపయోగిస్తున్నప్పుడు మరియు గ్లోబల్ ఫంక్షన్లను ఉపయోగిస్తున్నప్పుడు, గ్లోబల్ ఫంక్షన్లకు స్టాక్ స్ట్రక్చర్ గురించి తెలియదు, స్టాక్ స్ట్రక్చర్ అంటారు గ్లోబల్ ఫంక్షన్లు ఏమిటో తెలియదు, నేను దీన్ని పాస్ చేయగలను.
ప్రయోజనం ఏమిటంటే, మేము సి ఉపయోగిస్తున్నప్పుడు మరియు గ్లోబల్ ఫంక్షన్లను ఉపయోగిస్తున్నప్పుడు, గ్లోబల్ ఫంక్షన్లకు స్టాక్ స్ట్రక్చర్ గురించి తెలియదు, స్టాక్ స్ట్రక్చర్ అంటారు గ్లోబల్ ఫంక్షన్లు ఏమిటో తెలియదు, నేను దీన్ని పాస్ చేయగలను.
కానీ నేను ఒక తరగతి చేసి, వాటిని డేటా సభ్యుడితో అనుబంధించినప్పుడు మరియు డేటా సభ్యుడితో పనిచేసే పద్ధతులు పూర్తిగా కలిసిపోయినప్పుడు, మీరు వాటిని అవసరమైన విధంగా పరిగణిస్తారు మరియు అవి పూర్తిగా ఎలా కట్టుబడి ఉన్నాయో చూడటానికి మేము యాక్సెస్ స్పెసిఫికేషన్ తర్వాత ప్రత్యేకంగా చూస్తాము C ++ లో మాకు మరింత పూర్తి డేటా రకాలను ఇవ్వడానికి.
కానీ నేను ఒక తరగతి చేసి, వాటిని డేటా సభ్యుడితో అనుబంధించినప్పుడు మరియు డేటా సభ్యుడితో పనిచేసే పద్ధతులు పూర్తిగా కలిసిపోయినప్పుడు, మీరు వాటిని అవసరమైన విధంగా పరిగణిస్తారు మరియు అవి పూర్తిగా ఎలా కట్టుబడి ఉన్నాయో చూడటానికి మేము యాక్సెస్ స్పెసిఫికేషన్ తర్వాత ప్రత్యేకంగా చూస్తాము C ++ లో మాకు మరింత పూర్తి డేటా రకాలను ఇవ్వడానికి.
ఇప్పుడు, మనం అర్థం చేసుకోవలసిన తదుపరి భావనలు, ఇక్కడ పరిచయం ఈ సంకేతం యొక్క భావన.
ఇప్పుడు, మనం అర్థం చేసుకోవలసిన తదుపరి భావనలు, ఇక్కడ పరిచయం ఈ సంకేతం యొక్క భావన.
ఈ పాయింటర్, "ఇది" వాస్తవానికి C ++ లో ఒక కీవర్డ్, మరియు ఇది ఒక పేరు.
ఈ పాయింటర్, "ఇది" వాస్తవానికి C ++ లో ఒక కీవర్డ్, మరియు ఇది ఒక పేరు.
మరియు ఇది ఒక వస్తువు యొక్క చిరునామాను కలిగి ఉన్న అంతర్నిర్మిత పాయింటర్.
మరియు ఇది ఒక వస్తువు యొక్క చిరునామాను కలిగి ఉన్న అంతర్నిర్మిత పాయింటర్.
అందువల్ల, నేను ఒక వస్తువు గురించి మాట్లాడుతుంటే, ఆ వస్తువు దాని స్వంత గుర్తింపును, దాని స్వంత గుర్తింపును, వస్తువు యొక్క పద్ధతుల్లో దాని స్వంత చిరునామాను సూచించవచ్చు.
అందువల్ల, నేను ఒక వస్తువు గురించి మాట్లాడుతుంటే, ఆ వస్తువు దాని స్వంత గుర్తింపును, దాని స్వంత గుర్తింపును, వస్తువు యొక్క పద్ధతుల్లో దాని స్వంత చిరునామాను సూచించవచ్చు.
మరియు ఈ సూచికలో ఆసక్తికరమైన సంతకం ఉంది.
మరియు ఈ సూచికలో ఆసక్తికరమైన సంతకం ఉంది.
కాబట్టి, మీరు ఇప్పటికే const పాయింటర్ను చూశారు, కాబట్టి ఈ పాయింటర్ ఎలా నిర్వచించబడిందో చూడటానికి మీరు ఈ సిగ్నల్ను సులభంగా చదవవచ్చు.
కాబట్టి, మీరు ఇప్పటికే const పాయింటర్ను చూశారు, కాబట్టి ఈ పాయింటర్ ఎలా నిర్వచించబడిందో చూడటానికి మీరు ఈ సిగ్నల్ను సులభంగా చదవవచ్చు.
కాబట్టి, పదవ తరగతి కోసం, దాని వస్తువు యొక్క "ఈ" పాయింటర్ "x * const" గా ఉంటుంది, ఇది "x *" ఇది ఒక తరగతి (రకం) వస్తువు (వస్తువు) అని సూచిస్తుంది మరియు ఇది ఒక పాయింటర్, ఈ నక్షత్రం తరువాత పాయింటర్ రకం ఈ పాయింటర్ యొక్క విలువను మీరు మార్చలేరని ఇది స్థిరమైన పాయింటర్ అని మాకు చెబుతుంది, ఇది అర్ధమే. ఎందుకంటే ఇది ఒక వస్తువు యొక్క చిరునామా అని మేము చెబుతున్నాము.
కాబట్టి, పదవ తరగతి కోసం, దాని వస్తువు యొక్క "ఈ" పాయింటర్ "x * const" గా ఉంటుంది, ఇది "x *" ఇది ఒక తరగతి (రకం) వస్తువు (వస్తువు) అని సూచిస్తుంది మరియు ఇది ఒక పాయింటర్, ఈ నక్షత్రం తరువాత పాయింటర్ రకం ఈ పాయింటర్ యొక్క విలువను మీరు మార్చలేరని ఇది స్థిరమైన పాయింటర్ అని మాకు చెబుతుంది, ఇది అర్ధమే. ఎందుకంటే ఇది ఒక వస్తువు యొక్క చిరునామా అని మేము చెబుతున్నాము.
కాబట్టి, ఇది వివిధ మార్గాల పరంగా అందుబాటులో ఉంటుంది.
కాబట్టి, ఇది వివిధ మార్గాల పరంగా అందుబాటులో ఉంటుంది.
అందువల్ల, ఇక్కడ నేను కొన్ని ఉదాహరణలు మాత్రమే చూపిస్తాను.
అందువల్ల, ఇక్కడ నేను కొన్ని ఉదాహరణలు మాత్రమే చూపిస్తాను.
ఇది నిష్పాక్షికంగా అర్ధవంతమైనది ఏమీ చేయదు, కానీ ఇది కేవలం ఉదాహరణ కోసం మాత్రమే; X ఒక తరగతి, దీనికి ఇద్దరు సభ్యులు ఉన్నారు.
ఇది నిష్పాక్షికంగా అర్ధవంతమైనది ఏమీ చేయదు, కానీ ఇది కేవలం ఉదాహరణ కోసం మాత్రమే; X ఒక తరగతి, దీనికి ఇద్దరు సభ్యులు ఉన్నారు.
మరియు f అనేది రెండు పారామితులను తీసుకొని వాటిని ఆబ్జెక్ట్ యొక్క రెండు డేటా సభ్యుల కోసం సెట్ చేస్తుంది.
మరియు f అనేది రెండు పారామితులను తీసుకొని వాటిని ఆబ్జెక్ట్ యొక్క రెండు డేటా సభ్యుల కోసం సెట్ చేస్తుంది.
మరియు మేము డేటా సభ్యుడిని నేరుగా M1 గా సూచించవచ్చు లేదా నేను ఈ పాయింటర్ M2 ద్వారా సూచించగలను, ఎందుకంటే ఇది ఒక వస్తువు గురించి మాట్లాడితే, ఈ వస్తువుకు పాయింటర్ అయిన పాయింటర్ నాకు ఉంది.
మరియు మేము డేటా సభ్యుడిని నేరుగా M1 గా సూచించవచ్చు లేదా నేను ఈ పాయింటర్ M2 ద్వారా సూచించగలను, ఎందుకంటే ఇది ఒక వస్తువు గురించి మాట్లాడితే, ఈ వస్తువుకు పాయింటర్ అయిన పాయింటర్ నాకు ఉంది.
కాబట్టి, నేను F లో ఉన్నప్పుడు, నాకు అలాంటిది, ఈ పాయింటర్ యొక్క విలువ నాకు ఉంది, దీని ద్వారా నేను ఈ వస్తువులో M1 మరియు M2 ని సూచించగలను.
కాబట్టి, నేను F లో ఉన్నప్పుడు, నాకు అలాంటిది, ఈ పాయింటర్ యొక్క విలువ నాకు ఉంది, దీని ద్వారా నేను ఈ వస్తువులో M1 మరియు M2 ని సూచించగలను.
కాబట్టి, మీరు ఈ కోడ్ ద్వారా వెళితే, ఈ పాయింటర్ వాస్తవానికి చిరునామాను తీసుకుంటుందని మీరు చూడగలరు.
కాబట్టి, మీరు ఈ కోడ్ ద్వారా వెళితే, ఈ పాయింటర్ వాస్తవానికి చిరునామాను తీసుకుంటుందని మీరు చూడగలరు.
అందువల్ల, ప్రధాన కోడ్లో, మేము చిరునామాను ముద్రించాము; మరియు ఫంక్షన్ f లో, మేము ఈ పాయింటర్ యొక్క విలువను ముద్రించాము మరియు అవి ఒకేలా ఉన్నాయని మీరు చూడవచ్చు.
అందువల్ల, ప్రధాన కోడ్లో, మేము చిరునామాను ముద్రించాము; మరియు ఫంక్షన్ f లో, మేము ఈ పాయింటర్ యొక్క విలువను ముద్రించాము మరియు అవి ఒకేలా ఉన్నాయని మీరు చూడవచ్చు.
కాబట్టి, ఈ పాయింటర్ వాస్తవానికి వస్తువు యొక్క చిరునామాను కలిగి ఉంటుంది.
కాబట్టి, ఈ పాయింటర్ వాస్తవానికి వస్తువు యొక్క చిరునామాను కలిగి ఉంటుంది.
కాబట్టి, ఇక్కడ, నేను, మీరు వేర్వేరు డేటా సభ్యులను లేదా తరగతి యొక్క పద్ధతులను ఉపయోగిస్తున్నప్పుడు ఈ పాయింటర్ను ఉపయోగించడం సాధారణంగా ఐచ్ఛికం, కానీ మీరు డేటా సభ్యుని k1, k2 వంటి ఇతర వేరియబుల్స్ నుండి వేరు చేయడానికి వాటిని ఉపయోగించవచ్చు.
కాబట్టి, ఇక్కడ, నేను, మీరు వేర్వేరు డేటా సభ్యులను లేదా తరగతి యొక్క పద్ధతులను ఉపయోగిస్తున్నప్పుడు ఈ పాయింటర్ను ఉపయోగించడం సాధారణంగా ఐచ్ఛికం, కానీ మీరు డేటా సభ్యుని k1, k2 వంటి ఇతర వేరియబుల్స్ నుండి వేరు చేయడానికి వాటిని ఉపయోగించవచ్చు.
కానీ కొన్ని ఉదాహరణలు ఉన్నాయి, కొన్ని పరిస్థితులు చాలా అవసరం అయినప్పుడు మరియు మేము ఇక్కడ రెండు ఉదాహరణలు మాత్రమే ఉంచాము.
కానీ కొన్ని ఉదాహరణలు ఉన్నాయి, కొన్ని పరిస్థితులు చాలా అవసరం అయినప్పుడు మరియు మేము ఇక్కడ రెండు ఉదాహరణలు మాత్రమే ఉంచాము.
ఉదాహరణకు, మీరు డ్యూయల్ లింక్డ్ జాబితాను కలిగి ఉంటే మరియు మీరు ఇచ్చిన నోడ్ తర్వాత నోడ్ను చొప్పించే నోడ్లోకి చొప్పించాలనుకుంటే, అది లింక్ను తదుపరి నోడ్కు మరియు మునుపటి నోడ్కు వెనుకకు లింక్కు ఫార్వార్డ్ చేస్తుంది, మీరు తప్పక చిరునామాను ఉపయోగించాలి మీరు నోడ్లో ఉంచారు.
ఉదాహరణకు, మీరు డ్యూయల్ లింక్డ్ జాబితాను కలిగి ఉంటే మరియు మీరు ఇచ్చిన నోడ్ తర్వాత నోడ్ను చొప్పించే నోడ్లోకి చొప్పించాలనుకుంటే, అది లింక్ను తదుపరి నోడ్కు మరియు మునుపటి నోడ్కు వెనుకకు లింక్కు ఫార్వార్డ్ చేస్తుంది, మీరు తప్పక చిరునామాను ఉపయోగించాలి మీరు నోడ్లో ఉంచారు.
లేదా మీరు ఒక వస్తువును తిరిగి ఇస్తుంటే, మీరు మీరే తిరిగి వస్తున్న వస్తువును సూచించాలి, వీటికి మరిన్ని ఉదాహరణలు తరువాత చూస్తాము.
లేదా మీరు ఒక వస్తువును తిరిగి ఇస్తుంటే, మీరు మీరే తిరిగి వస్తున్న వస్తువును సూచించాలి, వీటికి మరిన్ని ఉదాహరణలు తరువాత చూస్తాము.
కాబట్టి, మీరు దీనిని ఒకసారి ప్రయత్నించాలని నేను కోరుకుంటున్నాను, కాని దీనిపై మేము మరిన్ని ఉదాహరణలు ఇచ్చినప్పుడు, మేము దానిని మరింత విస్తరిస్తాము. కాబట్టి, దీనితో తరగతి యొక్క భావన మరియు దాని సంబంధిత వస్తువు ఏమిటో నేర్చుకున్నాము.
కాబట్టి, మీరు దీనిని ఒకసారి ప్రయత్నించాలని నేను కోరుకుంటున్నాను, కాని దీనిపై మేము మరిన్ని ఉదాహరణలు ఇచ్చినప్పుడు, మేము దానిని మరింత విస్తరిస్తాము. కాబట్టి, దీనితో తరగతి యొక్క భావన మరియు దాని సంబంధిత వస్తువు ఏమిటో నేర్చుకున్నాము.
మేము ఒక తరగతి యొక్క డేటా సభ్యుల గురించి మరియు అదే వస్తువు యొక్క వస్తువు గురించి కూడా నేర్చుకున్నాము.
మేము ఒక తరగతి యొక్క డేటా సభ్యుల గురించి మరియు అదే వస్తువు యొక్క వస్తువు గురించి కూడా నేర్చుకున్నాము.
తరగతి కోసం నిర్వచించబడే మరియు ఒక వస్తువుకు వర్తించే పద్ధతుల గురించి మేము నేర్చుకున్నాము.
తరగతి కోసం నిర్వచించబడే మరియు ఒక వస్తువుకు వర్తించే పద్ధతుల గురించి మేము నేర్చుకున్నాము.
మరియు ప్రతి వస్తువుకు ఒక గుర్తింపు ఉందని మేము చూశాము, అది "ఈ" పాయింటర్లో ఆ వస్తువు యొక్క పద్ధతులకు సంగ్రహించబడవచ్చు మరియు ఇది వస్తువుకు తెలిసిన చిరునామాను కనుగొంటుంది.
మరియు ప్రతి వస్తువుకు ఒక గుర్తింపు ఉందని మేము చూశాము, అది "ఈ" పాయింటర్లో ఆ వస్తువు యొక్క పద్ధతులకు సంగ్రహించబడవచ్చు మరియు ఇది వస్తువుకు తెలిసిన చిరునామాను కనుగొంటుంది.
ఈ సమయంలో, C ++ లో, వస్తువు (ల) యొక్క ప్రత్యేక గుర్తింపు లేదని నేను కూడా చెప్పాలనుకుంటున్నాను.
ఈ సమయంలో, C ++ లో, వస్తువు (ల) యొక్క ప్రత్యేక గుర్తింపు లేదని నేను కూడా చెప్పాలనుకుంటున్నాను.
కాబట్టి, ఈ పాయింటర్ లేదా ఆబ్జెక్ట్ చిరునామా ప్రతిచోటా చిరునామాగా తీసుకోబడుతుంది, ఇది కొన్ని ఇతర వస్తువు-ఆధారిత వాటికి భిన్నంగా ఉంటుంది.
కాబట్టి, ఈ పాయింటర్ లేదా ఆబ్జెక్ట్ చిరునామా ప్రతిచోటా చిరునామాగా తీసుకోబడుతుంది, ఇది కొన్ని ఇతర వస్తువు-ఆధారిత వాటికి భిన్నంగా ఉంటుంది.
మీకు అవకాశం లభిస్తే, సిస్టమ్స్ మోడలింగ్ (సాఫ్ట్వేర్) ఇంజనీరింగ్ (మోడలింగ్) కోసం ఆబ్జెక్ట్-ఓరియెంటెడ్ ఎనాలిసిస్ మరియు డిజైన్ యుఎంఎల్ ద్వారా వెళితే మరియు సి. ++ లేదా ఈ సంబంధిత విషయానికి సంబంధించిన కొన్ని మంచి పుస్తకాలు ఉన్నాయి.
మీకు అవకాశం లభిస్తే, సిస్టమ్స్ మోడలింగ్ (సాఫ్ట్వేర్) ఇంజనీరింగ్ (మోడలింగ్) కోసం ఆబ్జెక్ట్-ఓరియెంటెడ్ ఎనాలిసిస్ మరియు డిజైన్ యుఎంఎల్ ద్వారా వెళితే మరియు సి. ++ లేదా ఈ సంబంధిత విషయానికి సంబంధించిన కొన్ని మంచి పుస్తకాలు ఉన్నాయి.
అందువల్ల, దీనితో పాటు, సి ++ లోని సిలబస్ ముగిసిందని చెప్పడం ద్వారా నేను మూసివేసి సంగ్రహించాలి.
అందువల్ల, దీనితో పాటు, సి ++ లోని సిలబస్ ముగిసిందని చెప్పడం ద్వారా నేను మూసివేసి సంగ్రహించాలి.
సి ++ లో చాలా నైపుణ్యం, నైపుణ్యం మరియు ఫలవంతమైన ప్రోగ్రామర్ కావడానికి మీ పరీక్షలకు మరియు అంతకు మించి మీ అందరికీ శుభాకాంక్షలు.
సి ++ లో చాలా నైపుణ్యం, నైపుణ్యం మరియు ఫలవంతమైన ప్రోగ్రామర్ కావడానికి మీ పరీక్షలకు మరియు అంతకు మించి మీ అందరికీ శుభాకాంక్షలు.
కాబట్టి, దీనితో మనం ప్రస్తుత మాడ్యూల్ చివరికి వస్తాము.
కాబట్టి, దీనితో మనం ప్రస్తుత మాడ్యూల్ చివరికి వస్తాము.
ఇక్కడ మేము C ++ లో Const-ness ను అధ్యయనం చేసాము, C ++ లో మేము Const-ness యొక్క మూడు రూపాలను చూశాము, ఆబ్జెక్ట్ పూర్తిగా స్థిరంగా ఉంటుంది మరియు వస్తువు స్థిరంగా ఉంటే, అది నిరంతర సభ్యుల విధులను మాత్రమే అమలు చేయగలదు.
ఇక్కడ మేము C ++ లో Const-ness ను అధ్యయనం చేసాము, C ++ లో మేము Const-ness యొక్క మూడు రూపాలను చూశాము, ఆబ్జెక్ట్ పూర్తిగా స్థిరంగా ఉంటుంది మరియు వస్తువు స్థిరంగా ఉంటే, అది నిరంతర సభ్యుల విధులను మాత్రమే అమలు చేయగలదు.
అందువల్ల, స్థిరమైన సభ్యుల ఫంక్షన్లు వస్తువును మార్చలేవని మేము చూశాము, కాని స్థిరమైన వస్తువు (ఆబ్జెక్ట్) కూడా స్థిరమైన సభ్యుల ఫంక్షన్లను ప్రారంభించగలదు మరియు మేము ఉద్యోగి యొక్క ID వంటి వస్తువును ఎంచుకుంటే మీరు చేయాలనుకుంటే, అతను ఒక విద్యార్థి యొక్క రోల్ సంఖ్య.
అందువల్ల, స్థిరమైన సభ్యుల ఫంక్షన్లు వస్తువును మార్చలేవని మేము చూశాము, కాని స్థిరమైన వస్తువు (ఆబ్జెక్ట్) కూడా స్థిరమైన సభ్యుల ఫంక్షన్లను ప్రారంభించగలదు మరియు మేము ఉద్యోగి యొక్క ID వంటి వస్తువును ఎంచుకుంటే మీరు చేయాలనుకుంటే, అతను ఒక విద్యార్థి యొక్క రోల్ సంఖ్య.
; అప్పుడు మేము సంబంధిత డేటా సభ్యుని సభ్యుడిని స్థిరంగా చేయవచ్చు, తరువాత నిరంతర సభ్యుల ఫంక్షన్ (ఫంక్షన్) లేదా నాన్-స్టేషనరీ మెంబర్ ఫంక్షన్ (ఫంక్షన్), వాటిలో ఏవీ స్థిరమైన డేటా సభ్యుడిని మార్చలేవు.
అప్పుడు మేము సంబంధిత డేటా సభ్యుని సభ్యుడిని స్థిరంగా చేయవచ్చు, తరువాత నిరంతర సభ్యుల ఫంక్షన్ (ఫంక్షన్) లేదా నాన్-స్టేషనరీ మెంబర్ ఫంక్షన్ (ఫంక్షన్), వాటిలో ఏవీ స్థిరమైన డేటా సభ్యుడిని మార్చలేవు.
సి ++ డిఫాల్ట్గా కాస్ట్ వాడకంలో బిట్ వారీగా ఉండే కాన్-నెస్కు మద్దతు ఇస్తుందని మేము చూశాము, కాని తార్కిక కాన్-నెస్ సాధించడానికి ఒక పరివర్తన చెందిన డేటా సభ్యుడిని ఉపయోగించడం సాధ్యమవుతుంది, ఇది మనకు తార్కికంగా స్థిరమైన కాన్-నెస్ భావనను కలిగి ఉంటుంది మేము C ++ లోని పరివర్తన చెందిన డేటా సభ్యుడిని ఉపయోగించి కోడ్ చేయవచ్చు.
సి ++ డిఫాల్ట్గా కాస్ట్ వాడకంలో బిట్ వారీగా ఉండే కాన్-నెస్కు మద్దతు ఇస్తుందని మేము చూశాము, కాని తార్కిక కాన్-నెస్ సాధించడానికి ఒక పరివర్తన చెందిన డేటా సభ్యుడిని ఉపయోగించడం సాధ్యమవుతుంది, ఇది మనకు తార్కికంగా స్థిరమైన కాన్-నెస్ భావనను కలిగి ఉంటుంది మేము C ++ లోని పరివర్తన చెందిన డేటా సభ్యుడిని ఉపయోగించి కోడ్ చేయవచ్చు.
అందువల్ల, మనకు కొన్ని చోట్ల 16 యొక్క శ్రేణి కేటాయింపు ఉంది, ఆపై మేము strcp y ని ఉపయోగించి నా ఇన్పుట్ స్ట్రింగ్ (str) ను కాపీ చేస్తాము.
అందువల్ల, మనకు కొన్ని చోట్ల 16 యొక్క శ్రేణి కేటాయింపు ఉంది, ఆపై మేము strcp y ని ఉపయోగించి నా ఇన్పుట్ స్ట్రింగ్ (str) ను కాపీ చేస్తాము.
అందువల్ల, నా కార్డు యొక్క సభ్యుడు ఈ స్ట్రింగ్కు ప్రారంభించబడ్డాడు మరియు దీన్ని ఇక్కడ తప్పక చేయాలి, దీన్ని ప్రారంభ జాబితాలో చేయండి ఎందుకంటే పాయింటర్ కార్డ్ రెండూ MEM నంబర్ పాయింటర్ అలాగే స్ట్రింగ్ ఇది ఇప్పుడు నిరంతరంగా ఉంటుందని సూచిస్తుంది, కానీ తో క్రెడిట్ కార్డ్ ఆబ్జెక్ట్ సృష్టించబడిన తర్వాత మీరు కార్డ్ నంబర్లో ఎటువంటి మార్పు చేయలేని విధంగా మేము ఆ వస్తువును ఒక విధంగా రక్షించగలము మరియు సృష్టించగలము.
అందువల్ల, నా కార్డు యొక్క సభ్యుడు ఈ స్ట్రింగ్కు ప్రారంభించబడ్డాడు మరియు దీన్ని ఇక్కడ తప్పక చేయాలి, దీన్ని ప్రారంభ జాబితాలో చేయండి ఎందుకంటే పాయింటర్ కార్డ్ రెండూ MEM నంబర్ పాయింటర్ అలాగే స్ట్రింగ్ ఇది ఇప్పుడు నిరంతరంగా ఉంటుందని సూచిస్తుంది, కానీ తో క్రెడిట్ కార్డ్ ఆబ్జెక్ట్ సృష్టించబడిన తర్వాత మీరు కార్డ్ నంబర్లో ఎటువంటి మార్పు చేయలేని విధంగా మేము ఆ వస్తువును ఒక విధంగా రక్షించగలము మరియు సృష్టించగలము.
నిరంతర వస్తువులు, స్థిరమైన సభ్యుల విధులు మరియు స్థిరమైన డేటా సభ్యులను ఎలా సృష్టించాలో మరియు దానిని డిజైన్లో ఎలా ఉపయోగించాలో మనం చూశాము.
నిరంతర వస్తువులు, స్థిరమైన సభ్యుల విధులు మరియు స్థిరమైన డేటా సభ్యులను ఎలా సృష్టించాలో మరియు దానిని డిజైన్లో ఎలా ఉపయోగించాలో మనం చూశాము.
కాబట్టి మేము ఇంతకుముందు చూపిస్తున్న ప్రతికూలతలను మీరు కలిగి ఉండకూడదు, ఇది మొదట పారామితిని అక్షరాలా అంచనా వేస్తుంది మరియు ఆ మూల్యాంకన విలువను తీసుకొని ఫంక్షన్ను పిలుస్తుంది.
కాబట్టి మేము ఇంతకుముందు చూపిస్తున్న ప్రతికూలతలను మీరు కలిగి ఉండకూడదు, ఇది మొదట పారామితిని అక్షరాలా అంచనా వేస్తుంది మరియు ఆ మూల్యాంకన విలువను తీసుకొని ఫంక్షన్ను పిలుస్తుంది.
కాబట్టి మీరు ఇక్కడ + 1 ను పాస్ చేస్తే, అది మొదట 1 గా 4 గా చేసి, తరువాత పాస్ అవుతుంది, మీరు ++ a చేస్తే అది 3 నుండి 4 కి పెరుగుతుంది మరియు పాస్ అవుతుంది.
కాబట్టి మీరు ఇక్కడ + 1 ను పాస్ చేస్తే, అది మొదట 1 గా 4 గా చేసి, తరువాత పాస్ అవుతుంది, మీరు ++ a చేస్తే అది 3 నుండి 4 కి పెరుగుతుంది మరియు పాస్ అవుతుంది.
అందువల్ల, మీకు హాని జరగదు
అందువల్ల, మీకు హాని జరగదు
I
కానీ మీరు హాష్ నిర్వచించిన మాక్రోలతో మాక్రోల యొక్క ప్రయోజనాన్ని పొందుతారు, మీరు ఫంక్షన్ యొక్క తలపై నివారించగలిగారు, అన్ని పారామితులను కోపింగ్ అని పిలుస్తారు, తరువాత బదిలీని నియంత్రించండి, తరువాత గణన చేసి ఆపై నియంత్రించండి మరియు తిరిగి బదిలీ చేయండి
కానీ మీరు హాష్ నిర్వచించిన మాక్రోలతో మాక్రోల యొక్క ప్రయోజనాన్ని పొందుతారు, మీరు ఫంక్షన్ యొక్క తలపై నివారించగలిగారు, అన్ని పారామితులను కోపింగ్ అని పిలుస్తారు, తరువాత బదిలీని నియంత్రించండి, తరువాత గణన చేసి ఆపై నియంత్రించండి మరియు తిరిగి బదిలీ చేయండి
రిటర్న్ విలువ కారణంగా ఇవన్నీ వాయిదా వేయవచ్చు ఎందుకంటే కంపైలర్ వాస్తవానికి నేను ఇక్కడ చేస్తున్న సైట్లో ఫంక్షన్ అని పిలువబడే x సార్లు x ఉంచడానికి ప్రయత్నిస్తుంది.
రిటర్న్ విలువ కారణంగా ఇవన్నీ వాయిదా వేయవచ్చు ఎందుకంటే కంపైలర్ వాస్తవానికి నేను ఇక్కడ చేస్తున్న సైట్లో ఫంక్షన్ అని పిలువబడే x సార్లు x ఉంచడానికి ప్రయత్నిస్తుంది.
కాబట్టి, ఇన్లైన్ యొక్క ప్రాథమిక లక్షణం ఇది.
కాబట్టి, ఇన్లైన్ యొక్క ప్రాథమిక లక్షణం ఇది.
...
@@ -126,5 +125,3 @@
...
@@ -126,5 +125,3 @@
డేటా యొక్క అస్థిరత కోసం మేము పరిచయం చేసాము మరియు సి ++ ప్రోగ్రామ్లలో అస్థిర డేటాను ఎలా ఉపయోగించవచ్చో చూశాము.
డేటా యొక్క అస్థిరత కోసం మేము పరిచయం చేసాము మరియు సి ++ ప్రోగ్రామ్లలో అస్థిర డేటాను ఎలా ఉపయోగించవచ్చో చూశాము.
తరువాత, మేము మాక్రోలను సి పారామితి రూపంతో పునర్నిర్వచించాము మరియు మాక్రోలను మార్చడానికి ఇన్లైన్ (ఫంక్షన్) లేదా ఫంక్షన్ (ఫంక్షన్) ఇన్లైనింగ్ ఉపయోగించబడుతుందని చూపించాము.అయితే మాక్రోలు అందించే అనేక వాక్యనిర్మాణ మరియు అర్థ సమస్యల ప్రయోజనంతో ఇది చేయవచ్చు.
తరువాత, మేము మాక్రోలను సి పారామితి రూపంతో పునర్నిర్వచించాము మరియు మాక్రోలను మార్చడానికి ఇన్లైన్ (ఫంక్షన్) లేదా ఫంక్షన్ (ఫంక్షన్) ఇన్లైనింగ్ ఉపయోగించబడుతుందని చూపించాము.అయితే మాక్రోలు అందించే అనేక వాక్యనిర్మాణ మరియు అర్థ సమస్యల ప్రయోజనంతో ఇది చేయవచ్చు.
కంపైలర్(compiler) అందించే ఉచిత కన్స్ట్రక్టర్లు మరియు డిస్ట్రక్టర్ల గురించి మాట్లాడాం.
కంపైలర్(compiler) అందించే ఉచిత కన్స్ట్రక్టర్లు మరియు డిస్ట్రక్టర్ల గురించి మాట్లాడాం.
వీటిలో అన్నింటికీ అమర్చారు, ఇప్పుడు మేము ఆబ్జెక్ట్ (object) జీవితకాలంగా పిలిచేపిలువబడే దానిపై లోతుగా ఆలోచిస్తాము.
వీటిలో అన్నింటికీ అమర్చారు, ఇప్పుడు మేము ఆబ్జెక్ట్ (object) జీవితకాలంగా పిలిచేపిలువబడే దానిపై లోతుగా ఆలోచిస్తాము.
ఎక్కడ, ఒక వస్తువు ఎప్పుడు సిద్ధంగా ఉంది మరియు ఎంతసేపు ఉపయోగించబడుతుందనే ప్రాథమిక ప్రశ్నకు మేము సమాధానం ఇస్తాము.
ఎక్కడ, ఒక వస్తువు ఎప్పుడు సిద్ధంగా ఉంది మరియు ఎంతసేపు ఉపయోగించబడుతుందనే ప్రాథమిక ప్రశ్నకు మేము సమాధానం ఇస్తాము.
అందువల్ల, నేను అప్లికేషన్ యొక్క ప్రాథమిక నైరూప్య చార్టుతో ప్రారంభిస్తాను.
అందువల్ల, నేను అప్లికేషన్ యొక్క ప్రాథమిక నైరూప్య చార్టుతో ప్రారంభిస్తాను.
కాబట్టి, ఎడమ వైపున నా అప్లికేషన్ ఉంది, అనగా, ఒక ఫంక్షన్ (ఫంక్షన్) MyFunc అని చెప్పండి, ఇది అర్ధవంతమైనది కాదు.
కాబట్టి, ఎడమ వైపున నా అప్లికేషన్ ఉంది, అనగా, ఒక ఫంక్షన్ (ఫంక్షన్) MyFunc అని చెప్పండి, ఇది అర్ధవంతమైనది కాదు.
ఇది కేవలం ఒక ఫంక్షన్ MyFunc మరియు నా సంక్లిష్ట తరగతి కోసం క్లాస్ కోడ్ యొక్క స్నిప్పెట్ యొక్క కుడి వైపున, అవి తప్పనిసరిగా మూడు సంకేతాలను కలిగి ఉంటాయి.
ఇది కేవలం ఒక ఫంక్షన్ MyFunc మరియు నా సంక్లిష్ట తరగతి కోసం క్లాస్ కోడ్ యొక్క స్నిప్పెట్ యొక్క కుడి వైపున, అవి తప్పనిసరిగా మూడు సంకేతాలను కలిగి ఉంటాయి.
నేను ఇక్కడ పెంచాను; కన్స్ట్రక్టర్ కోడ్, కట్టుబాటు () అని పిలువబడే సభ్యుల ఫంక్షన్, ఇది ప్రామాణిక సంఖ్య మరియు డిస్ట్రక్టర్ కోడ్ను కనుగొంటుంది.
నేను ఇక్కడ పెంచాను; కన్స్ట్రక్టర్ కోడ్, కట్టుబాటు () అని పిలువబడే సభ్యుల ఫంక్షన్, ఇది ప్రామాణిక సంఖ్య మరియు డిస్ట్రక్టర్ కోడ్ను కనుగొంటుంది.
కాబట్టి, ఏమి జరగబోతోందో పరిశీలిస్తే? తక్షణం నుండి, MyFunc ఫంక్షన్ను కొంతమంది కాలర్ పిలుస్తారు, MyFunc దాని అమలును పూర్తి చేసి, కాలర్కు నియంత్రణను తిరిగి ఇస్తుంది.
కాబట్టి, ఏమి జరగబోతోందో పరిశీలిస్తే? తక్షణం నుండి, MyFunc ఫంక్షన్ను కొంతమంది కాలర్ పిలుస్తారు, MyFunc దాని అమలును పూర్తి చేసి, కాలర్కు నియంత్రణను తిరిగి ఇస్తుంది.
MyFunc యొక్క ఈ పరిధిలో నిర్వచించబడిన వస్తువులకు ఏమి జరుగుతుందో చూడటానికి ప్రయత్నిద్దాం.
MyFunc యొక్క ఈ పరిధిలో నిర్వచించబడిన వస్తువులకు ఏమి జరుగుతుందో చూడటానికి ప్రయత్నిద్దాం.
ఇవి సంక్లిష్టమైన సి లాంటి వస్తువులు, ఈ ఫంక్షన్ పరిధిలో స్థానికంగా నిర్వచించబడతాయి.
ఇవి సంక్లిష్టమైన సి లాంటి వస్తువులు, ఈ ఫంక్షన్ పరిధిలో స్థానికంగా నిర్వచించబడతాయి.
వీటిని సాధారణంగా ఆటోమేటెడ్ ఆబ్జెక్ట్స్ అంటారు.
వీటిని సాధారణంగా ఆటోమేటెడ్ ఆబ్జెక్ట్స్ అంటారు.
ఇప్పుడు, జరుగుతున్న సంఘటనల క్రమాన్ని తెలుసుకోవడానికి.
ఇప్పుడు, జరుగుతున్న సంఘటనల క్రమాన్ని తెలుసుకోవడానికి.
వ్యాఖ్యలలో, ఈవెంట్ నంబర్లు E1, E2 వంటి కొన్ని వ్యాఖ్యలను నేను అర్థం చేసుకున్నట్లు మీరు చూస్తారు.
వ్యాఖ్యలలో, ఈవెంట్ నంబర్లు E1, E2 వంటి కొన్ని వ్యాఖ్యలను నేను అర్థం చేసుకున్నట్లు మీరు చూస్తారు.
ఈ సంఖ్యలు సంఘటనలు జరిగే క్రమాన్ని చూపుతాయి.
ఈ సంఖ్యలు సంఘటనలు జరిగే క్రమాన్ని చూపుతాయి.
కాబట్టి, మొదటి సంఘటన E1, ఇక్కడ ఫంక్షన్ అంటారు; అంటే ఫంక్షన్ అని పిలువబడిన వెంటనే, స్టాక్పై కేటాయింపు స్టాక్ ఫ్రేమ్.
కాబట్టి, మొదటి సంఘటన E1, ఇక్కడ ఫంక్షన్ అంటారు; అంటే ఫంక్షన్ అని పిలువబడిన వెంటనే, స్టాక్పై కేటాయింపు స్టాక్ ఫ్రేమ్.
ఈ ఫంక్షన్ మరియు ఈ లోకల్ వేరియబుల్ ప్రకారం, ఈ లోకల్ ఆబ్జెక్ట్ సి ఆ స్టాక్ ఫ్రేమ్లో కేటాయింపును కలిగి ఉంది, ఇది దాని మెమరీ స్థానాన్ని ఇస్తుంది, చివరికి ఇది ఈ పాయింటర్గా మారుతుంది.
ఈ ఫంక్షన్ మరియు ఈ లోకల్ వేరియబుల్ ప్రకారం, ఈ లోకల్ ఆబ్జెక్ట్ సి ఆ స్టాక్ ఫ్రేమ్లో కేటాయింపును కలిగి ఉంది, ఇది దాని మెమరీ స్థానాన్ని ఇస్తుంది, చివరికి ఇది ఈ పాయింటర్గా మారుతుంది.
కాబట్టి, E1 లో ఇదే జరుగుతుంది మరియు తరువాత నియంత్రణ ఆన్ చేయబడుతుంది.
కాబట్టి, E1 లో ఇదే జరుగుతుంది మరియు తరువాత నియంత్రణ ఆన్ చేయబడుతుంది.
మనం పట్టించుకోని మధ్యలో ఏదో ఉంది.
మనం పట్టించుకోని మధ్యలో ఏదో ఉంది.
మరియు, రెండవ సంఘటన E2 అయినప్పుడు, నియంత్రణ C యొక్క ఇన్స్టాంటియేషన్ను దాటబోయే దశకు వస్తుంది; అంటే, ఈ తరగతికి కన్స్ట్రక్టర్ను పిలుస్తారు; అంటే స్టాక్ ఫ్రేమ్లోని కేటాయింపు సి ఆబ్జెక్ట్ చిరునామాతో నియంత్రణ ఇక్కడకు వెళుతుంది.
మరియు, రెండవ సంఘటన E2 అయినప్పుడు, నియంత్రణ C యొక్క ఇన్స్టాంటియేషన్ను దాటబోయే దశకు వస్తుంది; అంటే, ఈ తరగతికి కన్స్ట్రక్టర్ను పిలుస్తారు; అంటే స్టాక్ ఫ్రేమ్లోని కేటాయింపు సి ఆబ్జెక్ట్ చిరునామాతో నియంత్రణ ఇక్కడకు వెళుతుంది.
ఇది కన్స్ట్రక్టర్ వద్దకు చేరుకున్నప్పుడు, ప్రారంభించడం మొదట జరగాలి; దీని అర్థం, కన్స్ట్రక్టర్ యొక్క శరీరం అమలు చేయడాన్ని ప్రారంభించడానికి ముందు, ప్రారంభ జాబితాలో జాబితా చేయబడిన అన్ని డేటా సభ్యులు ఒకదాని తరువాత ఒకటి పేర్కొన్న విలువతో ప్రారంభించబడతారు.
ఇది కన్స్ట్రక్టర్ వద్దకు చేరుకున్నప్పుడు, ప్రారంభించడం మొదట జరగాలి; దీని అర్థం, కన్స్ట్రక్టర్ యొక్క శరీరం అమలు చేయడాన్ని ప్రారంభించడానికి ముందు, ప్రారంభ జాబితాలో జాబితా చేయబడిన అన్ని డేటా సభ్యులు ఒకదాని తరువాత ఒకటి పేర్కొన్న విలువతో ప్రారంభించబడతారు.
కాబట్టి, మొదట ప్రారంభాన్ని తిరిగి ప్రారంభిస్తారు, తరువాత im ప్రారంభిస్తుంది మరియు అది జరిగే మూడు సంఘటనలు, E3.
కాబట్టి, మొదట ప్రారంభాన్ని తిరిగి ప్రారంభిస్తారు, తరువాత im ప్రారంభిస్తుంది మరియు అది జరిగే మూడు సంఘటనలు, E3.
ఈ ప్రారంభించడం పూర్తయిన తర్వాత, నియంత్రణ కన్స్ట్రక్టర్ల శరీరం యొక్క ప్రారంభానికి చేరుకుంటుంది.
ఈ ప్రారంభించడం పూర్తయిన తర్వాత, నియంత్రణ కన్స్ట్రక్టర్ల శరీరం యొక్క ప్రారంభానికి చేరుకుంటుంది.
మరియు ఈ సమయంలో; ఈ సమయంలో, వస్తువు వాస్తవానికి అందుబాటులో ఉందని మేము చెప్తాము.
మరియు ఈ సమయంలో; ఈ సమయంలో, వస్తువు వాస్తవానికి అందుబాటులో ఉందని మేము చెప్తాము.
దాని జీవితకాలం ప్రారంభమవుతుంది.
దాని జీవితకాలం ప్రారంభమవుతుంది.
మరియు ఆ సంఘటన E4.
మరియు ఆ సంఘటన E4.
కాబట్టి, మీరు క్రింది పట్టికలో చూస్తే, నేను చెబుతున్నదంతా క్రింద పట్టికలో వ్రాయబడింది.
కాబట్టి, మీరు క్రింది పట్టికలో చూస్తే, నేను చెబుతున్నదంతా క్రింద పట్టికలో వ్రాయబడింది.
ఇది జీవితానికి నాంది.
ఇది జీవితానికి నాంది.
అందువల్ల, దయచేసి వస్తువు ప్రారంభించబడదని లేదా దాని జీవితకాలం ప్రారంభం కాదని గుర్తుంచుకోండి, కన్స్ట్రక్టర్ను పిలిచినప్పుడు, తక్షణం జరుగుతుంది.
అందువల్ల, దయచేసి వస్తువు ప్రారంభించబడదని లేదా దాని జీవితకాలం ప్రారంభం కాదని గుర్తుంచుకోండి, కన్స్ట్రక్టర్ను పిలిచినప్పుడు, తక్షణం జరుగుతుంది.
అయినప్పటికీ, బిల్డర్ పిలువబడినప్పుడు మరియు దాని ప్రారంభ భాగాన్ని పూర్తి చేసినప్పుడు ఇది మొదలవుతుంది.
అయినప్పటికీ, బిల్డర్ పిలువబడినప్పుడు మరియు దాని ప్రారంభ భాగాన్ని పూర్తి చేసినప్పుడు ఇది మొదలవుతుంది.
అందువల్ల, ఒక వస్తువు యొక్క జీవితకాలం ప్రారంభమైనప్పుడు, ప్రాథమిక umption హ అనేది అన్ని డేటా సభ్యులను పూర్తిగా సిద్ధం చేసి, కన్స్ట్రక్టర్లలో ప్రారంభ విలువలుగా పేర్కొనబడిన వస్తువు.
అందువల్ల, ఒక వస్తువు యొక్క జీవితకాలం ప్రారంభమైనప్పుడు, ప్రాథమిక umption హ అనేది అన్ని డేటా సభ్యులను పూర్తిగా సిద్ధం చేసి, కన్స్ట్రక్టర్లలో ప్రారంభ విలువలుగా పేర్కొనబడిన వస్తువు.
దీనికి ముందు, E2 ఆ సమయం నుండి మరియు E4 ఆ సమయంలో ఉంది, అంటే, E3 సమయంలో వస్తువు క్రమరహిత స్థితి అని పిలువబడుతుంది.
దీనికి ముందు, E2 ఆ సమయం నుండి మరియు E4 ఆ సమయంలో ఉంది, అంటే, E3 సమయంలో వస్తువు క్రమరహిత స్థితి అని పిలువబడుతుంది.
ఇది డేటా సభ్యుల సరైన విలువలను కలిగి ఉండవచ్చు లేదా ఉండకపోవచ్చు.
ఇది డేటా సభ్యుల సరైన విలువలను కలిగి ఉండవచ్చు లేదా ఉండకపోవచ్చు.
ఉదాహరణకు, ఈ సమయంలో నేను వస్తువును చూస్తే, తిరిగి ఇచ్చిన భాగాన్ని ఇచ్చిన విలువకు ప్రారంభించవచ్చు మరియు im భాగం ఇంకా ప్రారంభించబడలేదు.
ఉదాహరణకు, ఈ సమయంలో నేను వస్తువును చూస్తే, తిరిగి ఇచ్చిన భాగాన్ని ఇచ్చిన విలువకు ప్రారంభించవచ్చు మరియు im భాగం ఇంకా ప్రారంభించబడలేదు.
అందువల్ల, ఆరంభం జరుగుతున్నంతవరకు ఆ వస్తువు అస్థిరమైన స్థితిలో ఉంటుందని చెబుతారు.
అందువల్ల, ఆరంభం జరుగుతున్నంతవరకు ఆ వస్తువు అస్థిరమైన స్థితిలో ఉంటుందని చెబుతారు.
మరియు, అది పూర్తయిన తర్వాత మాత్రమే కంట్రోల్ కన్స్ట్రక్టర్ శరీరం యొక్క ప్రారంభానికి చేరుకుంటుంది.
మరియు, అది పూర్తయిన తర్వాత మాత్రమే కంట్రోల్ కన్స్ట్రక్టర్ శరీరం యొక్క ప్రారంభానికి చేరుకుంటుంది.
ఈవెంట్ E4 గా గుర్తించబడింది, ఇక్కడ వస్తువు సిద్ధంగా ఉంది మరియు ఇప్పుడు ఉపయోగించవచ్చు.
ఈవెంట్ E4 గా గుర్తించబడింది, ఇక్కడ వస్తువు సిద్ధంగా ఉంది మరియు ఇప్పుడు ఉపయోగించవచ్చు.
అందువల్ల, కన్స్ట్రక్టర్ యొక్క శరీరంలో, మీరు వాస్తవానికి ఏదైనా కోడ్ వ్రాస్తారు, ఆ వస్తువు ఇప్పటికే సరిగ్గా తయారు చేయబడిందని మరియు వెళుతుందని అనుకోవచ్చు.
అందువల్ల, కన్స్ట్రక్టర్ యొక్క శరీరంలో, మీరు వాస్తవానికి ఏదైనా కోడ్ వ్రాస్తారు, ఆ వస్తువు ఇప్పటికే సరిగ్గా తయారు చేయబడిందని మరియు వెళుతుందని అనుకోవచ్చు.
అందువల్ల, కన్స్ట్రక్టర్లు పూర్తయిన తర్వాత, ఇది సృష్టించిన ఎంటిటీ, కంట్రోల్ రిటర్న్స్ ఇక్కడ.
అందువల్ల, కన్స్ట్రక్టర్లు పూర్తయిన తర్వాత, ఇది సృష్టించిన ఎంటిటీ, కంట్రోల్ రిటర్న్స్ ఇక్కడ.
కొన్ని ఇతర విషయాలు జరుగుతాయి మరియు తరువాత, ఈ వస్తువు సంక్లిష్ట తరగతి యొక్క కొన్ని పద్ధతిని అమలు చేయడానికి ఉపయోగించబడుతుంది, ఇది E5; ఇది ఈ పద్ధతికి కాల్ ఇస్తుంది.
కొన్ని ఇతర విషయాలు జరుగుతాయి మరియు తరువాత, ఈ వస్తువు సంక్లిష్ట తరగతి యొక్క కొన్ని పద్ధతిని అమలు చేయడానికి ఉపయోగించబడుతుంది, ఇది E5; ఇది ఈ పద్ధతికి కాల్ ఇస్తుంది.
ఇది అమలు ప్రారంభమవుతుంది; ఈవెంట్ E6 అయితే అది సంఖ్య యొక్క విలువను లెక్కిస్తుంది మరియు ఆ ప్రమాణాన్ని ఇక్కడ తిరిగి ఇస్తుంది మరియు తరువాత విషయాలు కొనసాగుతాయి.
ఇది అమలు ప్రారంభమవుతుంది; ఈవెంట్ E6 అయితే అది సంఖ్య యొక్క విలువను లెక్కిస్తుంది మరియు ఆ ప్రమాణాన్ని ఇక్కడ తిరిగి ఇస్తుంది మరియు తరువాత విషయాలు కొనసాగుతాయి.
కాబట్టి, ప్రాథమికంగా, మీరు ఈ భాగాన్ని కన్స్ట్రక్టర్ల తర్వాత చూస్తే, మేము ఆబ్జెక్ట్ యొక్క అనేక విభిన్న ఉపయోగాలను కలిగి ఉండవచ్చు, ఇక్కడ ఆబ్జెక్ట్, డేటా (డేటా)) సభ్యులు ఉపయోగించబడుతున్నారు, డేటా సభ్యులు మార్చబడుతున్నారు, వివిధ పద్ధతులు మరియు మొదలైనవి మొదలగునవి.
కాబట్టి, ప్రాథమికంగా, మీరు ఈ భాగాన్ని కన్స్ట్రక్టర్ల తర్వాత చూస్తే, మేము ఆబ్జెక్ట్ యొక్క అనేక విభిన్న ఉపయోగాలను కలిగి ఉండవచ్చు, ఇక్కడ ఆబ్జెక్ట్, డేటా (డేటా)) సభ్యులు ఉపయోగించబడుతున్నారు, డేటా సభ్యులు మార్చబడుతున్నారు, వివిధ పద్ధతులు మరియు మొదలైనవి మొదలగునవి.
అంశం సిద్ధంగా ఉంది మరియు ఉపయోగంలో ఉంది.
అంశం సిద్ధంగా ఉంది మరియు ఉపయోగంలో ఉంది.
రిటర్న్ స్టేట్మెంట్కు చేరే వరకు ఇది దాని జీవితకాలంలో ప్రధానంగా ఉంటుంది.
రిటర్న్ స్టేట్మెంట్కు చేరే వరకు ఇది దాని జీవితకాలంలో ప్రధానంగా ఉంటుంది.
ఇది రిటర్న్ స్టేట్మెంట్కు చేరుకున్నప్పుడు, ఈ రిటర్న్ స్టేట్మెంట్లో, ఈ రిటర్న్ స్టేట్మెంట్ అమలు అయిన వెంటనే నియంత్రణ MyFunc నుండి బయటకు వెళ్తుందని మీకు తెలుసు.
ఇది రిటర్న్ స్టేట్మెంట్కు చేరుకున్నప్పుడు, ఈ రిటర్న్ స్టేట్మెంట్లో, ఈ రిటర్న్ స్టేట్మెంట్ అమలు అయిన వెంటనే నియంత్రణ MyFunc నుండి బయటకు వెళ్తుందని మీకు తెలుసు.
మరియు, నియంత్రణ MyFunc నుండి బయటకు వెళితే, ఈ వస్తువు c ఉన్న పరిధి ఇకపై అందుబాటులో ఉండదు.
మరియు, నియంత్రణ MyFunc నుండి బయటకు వెళితే, ఈ వస్తువు c ఉన్న పరిధి ఇకపై అందుబాటులో ఉండదు.
నియంత్రణ MyFunc నుండి నిష్క్రమించినప్పుడు, స్టాక్లోని ఫ్రేమ్ల కేటాయింపు ఈ ఫంక్షన్కు మరింత చెల్లుబాటు కాదు.
నియంత్రణ MyFunc నుండి నిష్క్రమించినప్పుడు, స్టాక్లోని ఫ్రేమ్ల కేటాయింపు ఈ ఫంక్షన్కు మరింత చెల్లుబాటు కాదు.
కాబట్టి, స్టాక్లోని సి చిరునామా మరింత చెల్లుబాటు కాదు.
కాబట్టి, స్టాక్లోని సి చిరునామా మరింత చెల్లుబాటు కాదు.
కాబట్టి, ఇది ఇది.
కాబట్టి, ఇది ఇది.
ఖచ్చితంగా, ఖచ్చితమైన పాయింట్ నిశ్శబ్ద సున్నితమైనది.
ఖచ్చితంగా, ఖచ్చితమైన పాయింట్ నిశ్శబ్ద సున్నితమైనది.
ఇది తిరిగి రాకముందే, కానీ తిరిగి ఇది మునుపటి స్టేట్మెంట్ కాదు, తదుపరి స్టేట్మెంట్ కాదు.
ఇది తిరిగి రాకముందే, కానీ తిరిగి ఇది మునుపటి స్టేట్మెంట్ కాదు, తదుపరి స్టేట్మెంట్ కాదు.
అయితే, ఈ సమయంలో సరైన డిస్ట్రక్టర్లను పిలవాలి.
అయితే, ఈ సమయంలో సరైన డిస్ట్రక్టర్లను పిలవాలి.
కాబట్టి, ఇక్కడ కాల్ సి. ~ కాంప్లెక్స్ () అని పిలువబడుతుంది.
కాబట్టి, ఇక్కడ కాల్ సి. ~ కాంప్లెక్స్ () అని పిలువబడుతుంది.
కాబట్టి, E7 న, నియంత్రణ డిస్ట్రక్టర్లకు వెళ్తుంది.
కాబట్టి, E7 న, నియంత్రణ డిస్ట్రక్టర్లకు వెళ్తుంది.
డిస్ట్రక్టర్ల గుండా వెళుతుంది.
డిస్ట్రక్టర్ల గుండా వెళుతుంది.
డిస్ట్రక్టర్స్ బాడీ వేర్వేరు డి-ఇనిషియేషన్ కార్యకలాపాలను చేయగలదు.
డిస్ట్రక్టర్స్ బాడీ వేర్వేరు డి-ఇనిషియేషన్ కార్యకలాపాలను చేయగలదు.
కానీ, దయచేసి ఆ వస్తువు ఇప్పటికీ వాడుకలో ఉందని గుర్తుంచుకోండి.
కానీ, దయచేసి ఆ వస్తువు ఇప్పటికీ వాడుకలో ఉందని గుర్తుంచుకోండి.
వస్తువు ఇప్పటికీ జీవితకాలం చెల్లుబాటు అయ్యేది, ఇది డిస్ట్రక్టర్స్ బాడీ చివరికి వచ్చే వరకు.
వస్తువు ఇప్పటికీ జీవితకాలం చెల్లుబాటు అయ్యేది, ఇది డిస్ట్రక్టర్స్ బాడీ చివరికి వచ్చే వరకు.
E8 ఈవెంట్, వస్తువు యొక్క జీవితకాలం ముగిసిందని మరియు నియంత్రణ తిరిగి రావడానికి when హించినప్పుడు.
E8 ఈవెంట్, వస్తువు యొక్క జీవితకాలం ముగిసిందని మరియు నియంత్రణ తిరిగి రావడానికి when హించినప్పుడు.
అందువల్ల, నియంత్రణ తిరిగి వచ్చినప్పుడు, ఆ సమయంలో వస్తువు చెల్లుబాటు కాదు.
అందువల్ల, నియంత్రణ తిరిగి వచ్చినప్పుడు, ఆ సమయంలో వస్తువు చెల్లుబాటు కాదు.
ఆబ్జెక్ట్ జీవితకాలం ఇప్పటికే ముగిసింది మరియు తిరిగి వచ్చే ఉద్దేశ్యంతో ముందుకు సాగుతుంది, ఇది కాలర్కు నియంత్రణను తిరిగి ఇస్తుంది.
ఆబ్జెక్ట్ జీవితకాలం ఇప్పటికే ముగిసింది మరియు తిరిగి వచ్చే ఉద్దేశ్యంతో ముందుకు సాగుతుంది, ఇది కాలర్కు నియంత్రణను తిరిగి ఇస్తుంది.
మరియు, ఇది ఈ ఫంక్షన్ కోసం స్టాక్ ఫ్రేమ్ను కూడా నిర్వహిస్తుంది.
మరియు, ఇది ఈ ఫంక్షన్ కోసం స్టాక్ ఫ్రేమ్ను కూడా నిర్వహిస్తుంది.
అందులో కొంత భాగం ఆబ్జెక్ట్ సి, ఇది మేము జీవితకాలం ట్రాక్ చేస్తున్నాము.
అందులో కొంత భాగం ఆబ్జెక్ట్ సి, ఇది మేము జీవితకాలం ట్రాక్ చేస్తున్నాము.
కాబట్టి, మేము సంగ్రహించినట్లయితే, ఇది కన్స్ట్రక్టర్లలోని పాయింట్ మరియు ఇది డిస్ట్రక్టర్లలోని పాయింట్.
కాబట్టి, మేము సంగ్రహించినట్లయితే, ఇది కన్స్ట్రక్టర్లలోని పాయింట్ మరియు ఇది డిస్ట్రక్టర్లలోని పాయింట్.
ప్రోగ్రామ్ అమలు సమయంలో, ఇది ఒక నిర్దిష్ట సందర్భంలో ఒక వస్తువు యొక్క జీవితకాలం నిర్వచిస్తుంది, దీనిలో మేము వేర్వేరు జీవితకాల నిర్మాణాలను చూపుతామని చూపిస్తాము; జీవితకాలం ఎలా మారుతుందో మేము చూపుతాము.
ప్రోగ్రామ్ అమలు సమయంలో, ఇది ఒక నిర్దిష్ట సందర్భంలో ఒక వస్తువు యొక్క జీవితకాలం నిర్వచిస్తుంది, దీనిలో మేము వేర్వేరు జీవితకాల నిర్మాణాలను చూపుతామని చూపిస్తాము; జీవితకాలం ఎలా మారుతుందో మేము చూపుతాము.
ఏదేమైనా, ఇది ఎల్లప్పుడూ విధ్వంసకుల శరీరం యొక్క ముగింపు మరియు విధ్వంసకుల శరీరం యొక్క ముగింపు మధ్య సంభవిస్తుంది; సంబంధిత వస్తువు సజీవంగా మరియు జీవితకాలంగా పరిగణించబడే సమయం ఉంది.
ఏదేమైనా, ఇది ఎల్లప్పుడూ విధ్వంసకుల శరీరం యొక్క ముగింపు మరియు విధ్వంసకుల శరీరం యొక్క ముగింపు మధ్య సంభవిస్తుంది; సంబంధిత వస్తువు సజీవంగా మరియు జీవితకాలంగా పరిగణించబడే సమయం ఉంది.
వాస్తవానికి, ప్రారంభ జాబితా గురించి మరింత ప్రత్యేకంగా అర్థం చేసుకోవడానికి ఈ అవగాహన మాకు సహాయపడుతుంది.
వాస్తవానికి, ప్రారంభ జాబితా గురించి మరింత ప్రత్యేకంగా అర్థం చేసుకోవడానికి ఈ అవగాహన మాకు సహాయపడుతుంది.
కన్స్ట్రక్టర్లను నేర్చుకోవడానికి ప్రయత్నిస్తున్న వ్యక్తుల నుండి నేను తరచూ ప్రశ్నలు వేస్తాను, కన్స్ట్రక్టర్లు ఈ ప్రక్రియను అర్థం చేసుకుంటారు నాకు జాబితా ఎందుకు అవసరం? నేను కన్స్ట్రక్టర్ యొక్క శరీరంలో re_ = re లేదా im_ = im వంటివి వ్రాయగలను.
కన్స్ట్రక్టర్లను నేర్చుకోవడానికి ప్రయత్నిస్తున్న వ్యక్తుల నుండి నేను తరచూ ప్రశ్నలు వేస్తాను, కన్స్ట్రక్టర్లు ఈ ప్రక్రియను అర్థం చేసుకుంటారు నాకు జాబితా ఎందుకు అవసరం? నేను కన్స్ట్రక్టర్ యొక్క శరీరంలో re_ = re లేదా im_ = im వంటివి వ్రాయగలను.
నేను దానిని ప్రారంభించకుండా, కన్స్ట్రక్టర్ యొక్క శరీరంలో భాగంగా వ్రాయగలను.
నేను దానిని ప్రారంభించకుండా, కన్స్ట్రక్టర్ యొక్క శరీరంలో భాగంగా వ్రాయగలను.
కాబట్టి, రెండు ప్రశ్నలు ఉన్నాయి; ప్రాథమిక జాబితా ఎందుకు అవసరం? మరియు, ప్రారంభ జాబితా అందించినప్పటికీ, దాన్ని ప్రారంభించడం అవసరమా? సమాధానం మీరు వస్తువును అర్థం చేసుకున్నారని, క్షణం నియంత్రణ ఈ దశకు చేరుకుంటుంది; వస్తువు ప్రత్యక్షంగా పరిగణించబడుతుంది; వస్తువు కోసం కన్స్ట్రక్టర్లను ఉపయోగిస్తారు.
కాబట్టి, రెండు ప్రశ్నలు ఉన్నాయి; ప్రాథమిక జాబితా ఎందుకు అవసరం? మరియు, ప్రారంభ జాబితా అందించినప్పటికీ, దాన్ని ప్రారంభించడం అవసరమా? సమాధానం మీరు వస్తువును అర్థం చేసుకున్నారని, క్షణం నియంత్రణ ఈ దశకు చేరుకుంటుంది; వస్తువు ప్రత్యక్షంగా పరిగణించబడుతుంది; వస్తువు కోసం కన్స్ట్రక్టర్లను ఉపయోగిస్తారు.
కన్స్ట్రక్టర్లు పూర్తయ్యారు.
కన్స్ట్రక్టర్లు పూర్తయ్యారు.
కాబట్టి, మీరు డేటా సభ్యుల విలువలను కన్స్ట్రక్టర్ యొక్క శరీరంలో చొప్పించినట్లయితే, ఈ సమయంలో జీవితకాలం ప్రారంభమైనప్పుడు, మీ డేటా సభ్యులకు అస్థిరమైన విలువలు ఉంటాయి.
కాబట్టి, మీరు డేటా సభ్యుల విలువలను కన్స్ట్రక్టర్ యొక్క శరీరంలో చొప్పించినట్లయితే, ఈ సమయంలో జీవితకాలం ప్రారంభమైనప్పుడు, మీ డేటా సభ్యులకు అస్థిరమైన విలువలు ఉంటాయి.
ఇది సాధారణంగా చెత్త విలువలను కలిగి ఉంటుంది.
ఇది సాధారణంగా చెత్త విలువలను కలిగి ఉంటుంది.
ఇప్పుడు, మీరు కేవలం రెండు డబుల్స్ ఉన్న సంక్లిష్ట తరగతి యొక్క ఉదాహరణను పరిశీలిస్తే, మీ ప్రోగ్రామ్ ఎగ్జిక్యూషన్లో మీరు నిజంగా, నిజంగా ప్రారంభించినా లేదా మీరు ప్రారంభించినా అది నిజంగా పట్టింపు లేదు. re మరియు im, వస్తువును ప్రారంభించండి, ఆపై కన్స్ట్రక్టర్ యొక్క శరీరం.
ఇప్పుడు, మీరు కేవలం రెండు డబుల్స్ ఉన్న సంక్లిష్ట తరగతి యొక్క ఉదాహరణను పరిశీలిస్తే, మీ ప్రోగ్రామ్ ఎగ్జిక్యూషన్లో మీరు నిజంగా, నిజంగా ప్రారంభించినా లేదా మీరు ప్రారంభించినా అది నిజంగా పట్టింపు లేదు. re మరియు im, వస్తువును ప్రారంభించండి, ఆపై కన్స్ట్రక్టర్ యొక్క శరీరం.
మీరు క్రొత్త విలువలను మళ్లీ సెట్ చేసి ఆకట్టుకోండి.
మీరు క్రొత్త విలువలను మళ్లీ సెట్ చేసి ఆకట్టుకోండి.
ఇది ఎటువంటి తేడాలు చూపడం లేదు, కానీ తరువాత మీరు ఈ దశకు చేరుకున్నప్పుడు మీకు సరైన వస్తువు ఉందా అనేది నిజంగా ముఖ్యమైన ఉదాహరణలను చూపిస్తాము; ఇది వస్తువు యొక్క ప్రారంభ స్థానం.
ఇది ఎటువంటి తేడాలు చూపడం లేదు, కానీ తరువాత మీరు ఈ దశకు చేరుకున్నప్పుడు మీకు సరైన వస్తువు ఉందా అనేది నిజంగా ముఖ్యమైన ఉదాహరణలను చూపిస్తాము; ఇది వస్తువు యొక్క ప్రారంభ స్థానం.
మీరు ఈ దశకు వచ్చినప్పుడు, మీకు అనేక తరగతుల కోసం సరిగ్గా ప్రారంభించిన వస్తువు ఉందా లేదా అనే దానిపై మీకు తేడా ఉండవచ్చు.
మీరు ఈ దశకు వచ్చినప్పుడు, మీకు అనేక తరగతుల కోసం సరిగ్గా ప్రారంభించిన వస్తువు ఉందా లేదా అనే దానిపై మీకు తేడా ఉండవచ్చు.
మరియు అది చేసినప్పుడు, మీకు నిజంగా సమస్య ఉంది ఎందుకంటే ప్రారంభ జాబితాను ఉపయోగించడం మినహా దాన్ని పరిష్కరించడానికి మార్గం లేదు.
మరియు అది చేసినప్పుడు, మీకు నిజంగా సమస్య ఉంది ఎందుకంటే ప్రారంభ జాబితాను ఉపయోగించడం మినహా దాన్ని పరిష్కరించడానికి మార్గం లేదు.
ప్రారంభ జాబితాతో వ్యవహరించడానికి ఇది మరొక అంశం.
ప్రారంభ జాబితాతో వ్యవహరించడానికి ఇది మరొక అంశం.
ఒక వస్తువులో ఎంత మంది డేటా సభ్యులు ఉన్నారో ఊహించుకోండి.
ఒక వస్తువులో ఎంత మంది డేటా సభ్యులు ఉన్నారో ఊహించుకోండి.
మరియు, ప్రారంభ జాబితాలో లేదా ప్రారంభ ప్రక్రియలో, నేను ప్రారంభించగలను; నా ఉద్దేశ్యం ఏ ఆర్డర్ అయినా నాకు అవసరం.
మరియు, ప్రారంభ జాబితాలో లేదా ప్రారంభ ప్రక్రియలో, నేను ప్రారంభించగలను; నా ఉద్దేశ్యం ఏ ఆర్డర్ అయినా నాకు అవసరం.
అందువల్ల, ఒక డేటా సభ్యుని ప్రారంభించడం మరొకటి ప్రారంభించడంపై ఆధారపడి ఉంటే, అది మొదట ఏ డేటా సభ్యుడిని ప్రారంభించి, తరువాత ప్రారంభించబడుతుందో దానిపై ఆధారపడి ఉంటుంది.
అందువల్ల, ఒక డేటా సభ్యుని ప్రారంభించడం మరొకటి ప్రారంభించడంపై ఆధారపడి ఉంటే, అది మొదట ఏ డేటా సభ్యుడిని ప్రారంభించి, తరువాత ప్రారంభించబడుతుందో దానిపై ఆధారపడి ఉంటుంది.
ఇప్పుడు, నేను కన్స్ట్రక్టర్ యొక్క శరీరంలో ప్రారంభాన్ని అసైన్మెంట్గా వ్రాస్తే, అది జరగవచ్చు; వేర్వేరు డేటా సభ్యులు ఉంటే, డేటా సభ్యులను ప్రారంభించడానికి వివిధ మార్గాలు ఉండవచ్చు.
ఇప్పుడు, నేను కన్స్ట్రక్టర్ యొక్క శరీరంలో ప్రారంభాన్ని అసైన్మెంట్గా వ్రాస్తే, అది జరగవచ్చు; వేర్వేరు డేటా సభ్యులు ఉంటే, డేటా సభ్యులను ప్రారంభించడానికి వివిధ మార్గాలు ఉండవచ్చు.
కానీ, నేను దీనిని ప్రారంభ జాబితాగా వ్రాస్తే, కంపైలర్ ఒక ప్రత్యేకమైన విధానాన్ని అనుసరిస్తుంది.
కానీ, నేను దీనిని ప్రారంభ జాబితాగా వ్రాస్తే, కంపైలర్ ఒక ప్రత్యేకమైన విధానాన్ని అనుసరిస్తుంది.
కంపైలర్ వాటిని మీరు తరగతిలో వ్రాసే క్రమంలో ప్రారంభిస్తుంది, మీరు వాటిని ప్రారంభ జాబితాలో వ్రాసే క్రమంలో కాదు.
కంపైలర్ వాటిని మీరు తరగతిలో వ్రాసే క్రమంలో ప్రారంభిస్తుంది, మీరు వాటిని ప్రారంభ జాబితాలో వ్రాసే క్రమంలో కాదు.
కాబట్టి, కాంప్లెక్స్ యొక్క ఈ ఉదాహరణ కోసం, మేము దీనిని రి మరియు ఇమ్ అని వ్రాసాము.
కాబట్టి, కాంప్లెక్స్ యొక్క ఈ ఉదాహరణ కోసం, మేము దీనిని రి మరియు ఇమ్ అని వ్రాసాము.
మేము ఇలా వ్రాయగలము; మేము మొదట ప్రారంభించడం, తరువాత తిరిగి ప్రారంభించడం.
మేము ఇలా వ్రాయగలము; మేము మొదట ప్రారంభించడం, తరువాత తిరిగి ప్రారంభించడం.
కానీ, నేను ఈ విధమైన ఇనిషియేజర్ జాబితాను వ్రాసినప్పటికీ, డేటా సభ్యుడు ముందు సభ్యుని తరగతి నిర్వచనంలో లేకుంటే తప్ప, ఈ ప్రారంభించడం ఈ ప్రారంభానికి ముందే ఉంటుంది.
కానీ, నేను ఈ విధమైన ఇనిషియేజర్ జాబితాను వ్రాసినప్పటికీ, డేటా సభ్యుడు ముందు సభ్యుని తరగతి నిర్వచనంలో లేకుంటే తప్ప, ఈ ప్రారంభించడం ఈ ప్రారంభానికి ముందే ఉంటుంది.
అందువల్ల, ప్రారంభ జాబితాను కలిగి ఉన్న ఫలితం ఏమిటంటే, వినియోగదారుడు ఎటువంటి ప్రయత్నం చేయకుండానే, ప్రారంభ ప్రక్రియ నిర్దిష్టంగా ఉంటుంది, డేటా సభ్యులు తప్పనిసరిగా పై నుండి క్రిందికి ప్రారంభించబడతారు, అటువంటి విధానం మీరు హామీ ఇవ్వలేరు.
అందువల్ల, ప్రారంభ జాబితాను కలిగి ఉన్న ఫలితం ఏమిటంటే, వినియోగదారుడు ఎటువంటి ప్రయత్నం చేయకుండానే, ప్రారంభ ప్రక్రియ నిర్దిష్టంగా ఉంటుంది, డేటా సభ్యులు తప్పనిసరిగా పై నుండి క్రిందికి ప్రారంభించబడతారు, అటువంటి విధానం మీరు హామీ ఇవ్వలేరు.
మీరు కన్స్ట్రక్టర్ యొక్క శరీరంలోకి ప్రారంభ విలువను చొప్పించినట్లయితే.
మీరు కన్స్ట్రక్టర్ యొక్క శరీరంలోకి ప్రారంభ విలువను చొప్పించినట్లయితే.
కాబట్టి, అదే సమయంలో, ఈ జీవితకాలం ఏమిటో మేము అర్థం చేసుకున్నాము మరియు ఇక్కడ నుండి ఇది ప్రారంభమవుతుంది మరియు ఇక్కడ ముగుస్తుంది.
కాబట్టి, అదే సమయంలో, ఈ జీవితకాలం ఏమిటో మేము అర్థం చేసుకున్నాము మరియు ఇక్కడ నుండి ఇది ప్రారంభమవుతుంది మరియు ఇక్కడ ముగుస్తుంది.
కింది స్లైడ్లలో, మేము జీవితంలోని వివిధ ఉదాహరణలను పరిశీలిస్తాము మరియు దానిని బాగా అర్థం చేసుకోవడానికి ప్రయత్నిస్తాము.
కింది స్లైడ్లలో, మేము జీవితంలోని వివిధ ఉదాహరణలను పరిశీలిస్తాము మరియు దానిని బాగా అర్థం చేసుకోవడానికి ప్రయత్నిస్తాము.
మేము వెళ్ళే ముందు, ఆ దృష్టాంతంలో నేను ఇప్పటివరకు చర్చించిన వాటిని సంగ్రహించడం మాత్రమే.
మేము వెళ్ళే ముందు, ఆ దృష్టాంతంలో నేను ఇప్పటివరకు చర్చించిన వాటిని సంగ్రహించడం మాత్రమే.
ఆ వస్తువును ఐదు వేర్వేరు అమలు దశలుగా భావించవచ్చు, ఎందుకంటే మొదట ఏమైనప్పటికీ కేటాయించాల్సిన వస్తువుకు జ్ఞాపకశక్తి ఉండాలి, స్వయంచాలకంగా స్టాక్లో ఉంటుంది. స్టాక్ నుండి లేదా ప్రపంచవ్యాప్తంగా లేదా డైనమిక్గా.
ఆ వస్తువును ఐదు వేర్వేరు అమలు దశలుగా భావించవచ్చు, ఎందుకంటే మొదట ఏమైనప్పటికీ కేటాయించాల్సిన వస్తువుకు జ్ఞాపకశక్తి ఉండాలి, స్వయంచాలకంగా స్టాక్లో ఉంటుంది. స్టాక్ నుండి లేదా ప్రపంచవ్యాప్తంగా లేదా డైనమిక్గా.
కాబట్టి, కేటాయింపు అవసరం ఎందుకంటే కేటాయింపు లేకుండా నాకు వివిధ భాగాలు నిల్వ చేయవలసిన మెమరీ స్థానం లేదు.
కాబట్టి, కేటాయింపు అవసరం ఎందుకంటే కేటాయింపు లేకుండా నాకు వివిధ భాగాలు నిల్వ చేయవలసిన మెమరీ స్థానం లేదు.
మరియు, నేను చేస్తున్నట్లు కేటాయింపు కోసం ఒక బంధం ఉండాలి.
మరియు, నేను చేస్తున్నట్లు కేటాయింపు కోసం ఒక బంధం ఉండాలి.
దీని అర్థం, ఆ వస్తువు కోసం నేను మెమరీలో ఉపయోగిస్తున్న వస్తువు యొక్క పేరు మరియు చిరునామా మధ్య అనుబంధం ఉండాలి.
దీని అర్థం, ఆ వస్తువు కోసం నేను మెమరీలో ఉపయోగిస్తున్న వస్తువు యొక్క పేరు మరియు చిరునామా మధ్య అనుబంధం ఉండాలి.
కాబట్టి, ఇది మొదటి అమలు స్థితి.
కాబట్టి, ఇది మొదటి అమలు స్థితి.
మరియు, అన్ని రకాల వస్తువులకు ఇది అనేక రకాలుగా జరుగుతుంది.
మరియు, అన్ని రకాల వస్తువులకు ఇది అనేక రకాలుగా జరుగుతుంది.
ఈ బైండింగ్ అంశం గురించి మీరు ప్రస్తుతం ఆందోళన చెందాల్సిన అవసరం లేదు.
ఈ బైండింగ్ అంశం గురించి మీరు ప్రస్తుతం ఆందోళన చెందాల్సిన అవసరం లేదు.
మేము C ++ లోకి లోతుగా వెళుతున్నప్పుడు, ఈ బైండింగ్ భావన మరింత స్పష్టంగా కనిపిస్తుంది.
మేము C ++ లోకి లోతుగా వెళుతున్నప్పుడు, ఈ బైండింగ్ భావన మరింత స్పష్టంగా కనిపిస్తుంది.
కానీ, బైండింగ్ పూర్తయిన తర్వాత, అంటే, వస్తువును సృష్టించడానికి నాకు జ్ఞాపకశక్తి ఉంది, ఆ జ్ఞాపకంతో మనం కన్స్ట్రక్టర్ను అవ్యక్తంగా పిలుస్తాము.
కానీ, బైండింగ్ పూర్తయిన తర్వాత, అంటే, వస్తువును సృష్టించడానికి నాకు జ్ఞాపకశక్తి ఉంది, ఆ జ్ఞాపకంతో మనం కన్స్ట్రక్టర్ను అవ్యక్తంగా పిలుస్తాము.
మరియు మేము ఇప్పుడే చర్చించినట్లుగా, ఇది ప్రారంభ జాబితా ద్వారా అమలు అవుతుంది.
మరియు మేము ఇప్పుడే చర్చించినట్లుగా, ఇది ప్రారంభ జాబితా ద్వారా అమలు అవుతుంది.
మరియు, వస్తువు కన్స్ట్రక్టర్లుగా మారుతుంది, తరువాత కన్స్ట్రక్టర్ ఎంటిటీ కోసం అమలు కొనసాగుతుంది.
మరియు, వస్తువు కన్స్ట్రక్టర్లుగా మారుతుంది, తరువాత కన్స్ట్రక్టర్ ఎంటిటీ కోసం అమలు కొనసాగుతుంది.
మూడవ దశ వస్తువు యొక్క అన్ని విభిన్న ఉపయోగాలు, డిస్ట్రక్టర్లను పిలిచే వరకు.
మూడవ దశ వస్తువు యొక్క అన్ని విభిన్న ఉపయోగాలు, డిస్ట్రక్టర్లను పిలిచే వరకు.
మరియు, డిస్ట్రక్టర్లు మళ్ళీ శరీరం గుండా వెళతారు, వాటిని నాశనం చేయడానికి ప్రత్యేకంగా అన్ని వివిధ భాగాలను అమలు చేస్తారు.
మరియు, డిస్ట్రక్టర్లు మళ్ళీ శరీరం గుండా వెళతారు, వాటిని నాశనం చేయడానికి ప్రత్యేకంగా అన్ని వివిధ భాగాలను అమలు చేస్తారు.
మరియు, విధ్వంసక శరీరం చివరిలో మనకు డిస్ట్రక్టర్ల ప్రక్రియ ఉంటుంది.
మరియు, విధ్వంసక శరీరం చివరిలో మనకు డిస్ట్రక్టర్ల ప్రక్రియ ఉంటుంది.
మరియు ఆ తరువాత, జ్ఞాపకశక్తిని రక్షించే సమయం ఇది.
మరియు ఆ తరువాత, జ్ఞాపకశక్తిని రక్షించే సమయం ఇది.
మరియు, జ్ఞాపకశక్తిని పరిష్కరించిన తర్వాత, డీబిండింగ్ జరుగుతుంది.
మరియు, జ్ఞాపకశక్తిని పరిష్కరించిన తర్వాత, డీబిండింగ్ జరుగుతుంది.
అంటే, చిరునామా మరియు పేరు మధ్య సంబంధం ఇక చెల్లదు.
అంటే, చిరునామా మరియు పేరు మధ్య సంబంధం ఇక చెల్లదు.
కాబట్టి, మేము ఇక్కడ పేర్కొన్నది ఇదే.
కాబట్టి, మేము ఇక్కడ పేర్కొన్నది ఇదే.
గమనించదగ్గ విషయం, ఇక్కడ ఈ అవ్యక్త లేదా ముందే నిర్వచించిన రకంలో, అన్ని రకాల కన్స్ట్రక్టర్లు లేదా డిస్ట్రక్టర్లను సి ++ లో పరిగణిస్తారని మీరు గమనించాలి.
గమనించదగ్గ విషయం, ఇక్కడ ఈ అవ్యక్త లేదా ముందే నిర్వచించిన రకంలో, అన్ని రకాల కన్స్ట్రక్టర్లు లేదా డిస్ట్రక్టర్లను సి ++ లో పరిగణిస్తారని మీరు గమనించాలి.
కానీ, అంతర్లీన రకాలకు నిజంగా కన్స్ట్రక్టర్ లేదా డిస్ట్రక్టర్ లేదు.
కానీ, అంతర్లీన రకాలకు నిజంగా కన్స్ట్రక్టర్ లేదా డిస్ట్రక్టర్ లేదు.
వారు ఏకరూపత కోసం అదే వాక్యనిర్మాణాన్ని అనుసరిస్తారు.
వారు ఏకరూపత కోసం అదే వాక్యనిర్మాణాన్ని అనుసరిస్తారు.
వాస్తవానికి, అవి సంభవించే విలువల యొక్క సాధారణ బిట్విట్ అసైన్మెంట్లు లేదా సంభవించే విలువలు.
వాస్తవానికి, అవి సంభవించే విలువల యొక్క సాధారణ బిట్విట్ అసైన్మెంట్లు లేదా సంభవించే విలువలు.
కాబట్టి అవ్యక్త రకం కోసం, జీవితకాలం ప్రాథమికంగా నిర్వచనం నుండి స్కోప్ చివరి వరకు విస్తరించి ఉంటుంది.
కాబట్టి అవ్యక్త రకం కోసం, జీవితకాలం ప్రాథమికంగా నిర్వచనం నుండి స్కోప్ చివరి వరకు విస్తరించి ఉంటుంది.
కాబట్టి, స్వయంచాలక వస్తువుల జీవితకాలానికి ఇది పూర్తి ఉదాహరణ.
కాబట్టి, స్వయంచాలక వస్తువుల జీవితకాలానికి ఇది పూర్తి ఉదాహరణ.
అంటే, ఫంక్షన్ బాడీ లేదా ఫంక్షన్ పరామితి మొదలైన వాటికి స్థానికంగా ఉండే వస్తువులు.
అంటే, ఫంక్షన్ బాడీ లేదా ఫంక్షన్ పరామితి మొదలైన వాటికి స్థానికంగా ఉండే వస్తువులు.
కాబట్టి, ఇది, ఇవి రెండు విషయాలు.
కాబట్టి, ఇది, ఇవి రెండు విషయాలు.
అందువల్ల, మేము జీవితకాలం చూస్తే, మొదట సి యొక్క కన్స్ట్రక్టర్లు ఖచ్చితంగా ఉంటారు.
అందువల్ల, మేము జీవితకాలం చూస్తే, మొదట సి యొక్క కన్స్ట్రక్టర్లు ఖచ్చితంగా ఉంటారు.
కాబట్టి, సి యొక్క సృష్టికర్తను మొదట పిలుస్తారు.
కాబట్టి, సి యొక్క సృష్టికర్తను మొదట పిలుస్తారు.
మరియు, అందుకే కన్స్ట్రక్టర్ అని పిలువబడినప్పుడు, రీ మరియు ఇమ్ (4.2,5.3) కు సెట్ చేయబడిన సందేశ వివరణలో మీరు చూసేది ఇదే.
మరియు, అందుకే కన్స్ట్రక్టర్ అని పిలువబడినప్పుడు, రీ మరియు ఇమ్ (4.2,5.3) కు సెట్ చేయబడిన సందేశ వివరణలో మీరు చూసేది ఇదే.
కాబట్టి, ఇది సి యొక్క కన్స్ట్రక్టర్లు.
కాబట్టి, ఇది సి యొక్క కన్స్ట్రక్టర్లు.
దీని తరువాత, d యొక్క కన్స్ట్రక్టర్ చేయబడుతుంది.
దీని తరువాత, d యొక్క కన్స్ట్రక్టర్ చేయబడుతుంది.
ఇది D యొక్క కన్స్ట్రక్టర్లు, అప్పుడు వారు ముద్రించబడతారు.
ఇది D యొక్క కన్స్ట్రక్టర్లు, అప్పుడు వారు ముద్రించబడతారు.
కాబట్టి, అది వస్తువుల ఉపయోగం.
కాబట్టి, అది వస్తువుల ఉపయోగం.
చివరకు, ఈ సమయంలో, ఉపసంహరణ సమయంలో, డిస్ట్రాయర్లు పిలువబడతాయి.
చివరకు, ఈ సమయంలో, ఉపసంహరణ సమయంలో, డిస్ట్రాయర్లు పిలువబడతాయి.
మరియు, డిస్ట్రక్టర్లను పిలుస్తారని మరియు అవి రెండు వస్తువులను నాశనం చేస్తాయని మీకు చూపించడానికి నేను దీన్ని తగ్గిస్తాను.
మరియు, డిస్ట్రక్టర్లను పిలుస్తారని మరియు అవి రెండు వస్తువులను నాశనం చేస్తాయని మీకు చూపించడానికి నేను దీన్ని తగ్గిస్తాను.
ఇప్పుడు, ఏదో ఉంది.
ఇప్పుడు, ఏదో ఉంది.
మీరు చాలా జాగ్రత్తగా శ్రద్ధ వహించాల్సిన ఒక పాయింట్ను కన్స్ట్రక్టర్ల రివర్స్ ఆర్డర్లో డిస్ట్రక్టర్స్ అంటారు.
మీరు చాలా జాగ్రత్తగా శ్రద్ధ వహించాల్సిన ఒక పాయింట్ను కన్స్ట్రక్టర్ల రివర్స్ ఆర్డర్లో డిస్ట్రక్టర్స్ అంటారు.
ఇది డిఫాల్ట్ ఆటోమేటిక్ ప్రవర్తన.
ఇది డిఫాల్ట్ ఆటోమేటిక్ ప్రవర్తన.
వస్తువులు కన్స్ట్రక్టర్లుగా ఉన్నప్పుడు, అవి ఒకదాని తరువాత ఒకటి కన్స్ట్రక్టర్లు.
వస్తువులు కన్స్ట్రక్టర్లుగా ఉన్నప్పుడు, అవి ఒకదాని తరువాత ఒకటి కన్స్ట్రక్టర్లు.
కాబట్టి, సి యొక్క కన్స్ట్రక్టర్లను మొదట d యొక్క కన్స్ట్రక్టర్లు అనుసరిస్తారు.
కాబట్టి, సి యొక్క కన్స్ట్రక్టర్లను మొదట d యొక్క కన్స్ట్రక్టర్లు అనుసరిస్తారు.
కానీ, మీరు డిస్ట్రక్టర్లను చూస్తే, D మొదట నాశనం అవుతుంది మరియు C తరువాత నాశనం అవుతుంది.
కానీ, మీరు డిస్ట్రక్టర్లను చూస్తే, D మొదట నాశనం అవుతుంది మరియు C తరువాత నాశనం అవుతుంది.
కాబట్టి, కన్స్ట్రక్టర్లు, డిస్ట్రక్టర్లు లేదా సాహిత్య కన్స్ట్రక్టర్లు, డిస్ట్రక్టర్స్ అనేది ఒక LIFO ప్రక్రియ, ఇక్కడ వారి కన్స్ట్రక్టర్లు చేసిన క్రమం రివర్స్ ఆర్డర్. మీరు నాశనం అవుతారు.
కాబట్టి, కన్స్ట్రక్టర్లు, డిస్ట్రక్టర్లు లేదా సాహిత్య కన్స్ట్రక్టర్లు, డిస్ట్రక్టర్స్ అనేది ఒక LIFO ప్రక్రియ, ఇక్కడ వారి కన్స్ట్రక్టర్లు చేసిన క్రమం రివర్స్ ఆర్డర్. మీరు నాశనం అవుతారు.
మీకు ఆటోమేటిక్ లేదా స్టాటిక్ ఆబ్జెక్ట్ ఉన్నంత వరకు, ఈ కన్స్ట్రక్టర్లు మరియు డిస్ట్రక్టర్స్ నియమాన్ని పాటించాలి.
మీకు ఆటోమేటిక్ లేదా స్టాటిక్ ఆబ్జెక్ట్ ఉన్నంత వరకు, ఈ కన్స్ట్రక్టర్లు మరియు డిస్ట్రక్టర్స్ నియమాన్ని పాటించాలి.
కాబట్టి, ఆబ్జెక్ట్ d అనేది ఆబ్జెక్ట్ సిపై ఆధారపడటం అయితే, సి యొక్క కన్స్ట్రక్టర్లను నిర్మించడం తార్కికం మరియు తరువాత డి యొక్క కన్స్ట్రక్టర్లను నిర్మించడం.
కాబట్టి, ఆబ్జెక్ట్ d అనేది ఆబ్జెక్ట్ సిపై ఆధారపడటం అయితే, సి యొక్క కన్స్ట్రక్టర్లను నిర్మించడం తార్కికం మరియు తరువాత డి యొక్క కన్స్ట్రక్టర్లను నిర్మించడం.
కానీ, d అదృశ్యమవుతుందని మీరు గుర్తుంచుకోవాలి; D యొక్క డిస్ట్రక్టర్లు మొదట c యొక్క డిస్ట్రక్టర్లుగా అదృశ్యం కావాలి.
కానీ, d అదృశ్యమవుతుందని మీరు గుర్తుంచుకోవాలి; D యొక్క డిస్ట్రక్టర్లు మొదట c యొక్క డిస్ట్రక్టర్లుగా అదృశ్యం కావాలి.
మరొక ఉదాహరణ, ఇక్కడ మేము ప్రత్యేకంగా శ్రేణి వస్తువుల కన్స్ట్రక్టర్లను చూపిస్తాము.
మరొక ఉదాహరణ, ఇక్కడ మేము ప్రత్యేకంగా శ్రేణి వస్తువుల కన్స్ట్రక్టర్లను చూపిస్తాము.
అందువల్ల, మేము కాంప్లెక్స్ను క్లాస్గా ఉపయోగించడం కొనసాగించాము.
అందువల్ల, మేము కాంప్లెక్స్ను క్లాస్గా ఉపయోగించడం కొనసాగించాము.
అందువల్ల, మాకు మూడు సంక్లిష్ట వస్తువుల శ్రేణి ఉంది, మీరు వస్తువుల శ్రేణుల కన్స్ట్రక్టర్లను నిర్మించాలనుకుంటే, మీ తరగతి తప్పనిసరిగా డిఫాల్ట్ కన్స్ట్రక్టర్కు మద్దతు ఇవ్వాలి.
అందువల్ల, మాకు మూడు సంక్లిష్ట వస్తువుల శ్రేణి ఉంది, మీరు వస్తువుల శ్రేణుల కన్స్ట్రక్టర్లను నిర్మించాలనుకుంటే, మీ తరగతి తప్పనిసరిగా డిఫాల్ట్ కన్స్ట్రక్టర్కు మద్దతు ఇవ్వాలి.
కారణం సులభం.
కారణం సులభం.
కన్స్ట్రక్టర్ డిఫాల్ట్ కాకపోతే, దాని కాల్ కోసం పారామితులను తప్పక పాస్ చేయాలి.
కన్స్ట్రక్టర్ డిఫాల్ట్ కాకపోతే, దాని కాల్ కోసం పారామితులను తప్పక పాస్ చేయాలి.
ఇప్పుడు, నేను సి [3] వలె శ్రేణిని కలిగి ఉంటే, అంటే అర్రే (అర్రే) సి యొక్క పేరు మరియు నాకు సి [0], సి [1] మరియు సి [2] ఉన్నాయి. మూడు విషయాలు ఉన్నాయి.
ఇప్పుడు, నేను సి [3] వలె శ్రేణిని కలిగి ఉంటే, అంటే అర్రే (అర్రే) సి యొక్క పేరు మరియు నాకు సి [0], సి [1] మరియు సి [2] ఉన్నాయి. మూడు విషయాలు ఉన్నాయి.
అందువల్ల, సహజంగా మూడు వేర్వేరు కన్స్ట్రక్టర్లు ఉన్నారు, వారు కన్స్ట్రక్టర్ను మూడుసార్లు పిలవాలి లేదా పిలవాలి; ఈ వస్తువు కోసం ఒకసారి సి [0], ఒకసారి ఈ చిరునామా వద్ద సి [1] ఆపై చివరకు ఈ చిరునామా వద్ద సి [2].
అందువల్ల, సహజంగా మూడు వేర్వేరు కన్స్ట్రక్టర్లు ఉన్నారు, వారు కన్స్ట్రక్టర్ను మూడుసార్లు పిలవాలి లేదా పిలవాలి; ఈ వస్తువు కోసం ఒకసారి సి [0], ఒకసారి ఈ చిరునామా వద్ద సి [1] ఆపై చివరకు ఈ చిరునామా వద్ద సి [2].
కాబట్టి, కన్స్ట్రక్టర్ మూడు కాల్స్ చేయాలి.
కాబట్టి, కన్స్ట్రక్టర్ మూడు కాల్స్ చేయాలి.
మరియు, కన్స్ట్రక్టర్ ప్రింట్ చేసే సందేశాన్ని ట్రాక్ చేయడం ద్వారా మీరు చూడవచ్చు.
మరియు, కన్స్ట్రక్టర్ ప్రింట్ చేసే సందేశాన్ని ట్రాక్ చేయడం ద్వారా మీరు చూడవచ్చు.
మరియు, ఈ మూడు కన్స్ట్రక్టర్ల యొక్క ఆరు పారామితులను అందించడం నిస్సందేహంగా లేదు కాబట్టి, మీరు ++ వస్తువుల శ్రేణిని నిర్మించినట్లయితే, కన్స్ట్రక్టర్ (కన్స్ట్రక్టర్) అప్రమేయంగా ఉండాలి.
మరియు, ఈ మూడు కన్స్ట్రక్టర్ల యొక్క ఆరు పారామితులను అందించడం నిస్సందేహంగా లేదు కాబట్టి, మీరు ++ వస్తువుల శ్రేణిని నిర్మించినట్లయితే, కన్స్ట్రక్టర్ (కన్స్ట్రక్టర్) అప్రమేయంగా ఉండాలి.
అప్పుడు, మీరు ఈ శ్రేణితో ఏదో చేస్తున్నారు.
అప్పుడు, మీరు ఈ శ్రేణితో ఏదో చేస్తున్నారు.
అందువల్ల, ఉదాహరణ ప్రయోజనం కోసం మాత్రమే, నేను సభ్యుల ఫంక్షన్ (ఫంక్షన్), opComplex () ని నిర్వచించాను, ఇది నేను ఏమీ చేయను కాని నేను డబుల్ విలువను తీసుకొని ఇద్దరి సభ్యులను చేర్చుకుంటాను.
అందువల్ల, ఉదాహరణ ప్రయోజనం కోసం మాత్రమే, నేను సభ్యుల ఫంక్షన్ (ఫంక్షన్), opComplex () ని నిర్వచించాను, ఇది నేను ఏమీ చేయను కాని నేను డబుల్ విలువను తీసుకొని ఇద్దరి సభ్యులను చేర్చుకుంటాను.
కాబట్టి, దాని రకం సంక్లిష్ట విమానంలో సంక్లిష్ట సంఖ్యను వికర్ణంగా విభజిస్తుంది.
కాబట్టి, దాని రకం సంక్లిష్ట విమానంలో సంక్లిష్ట సంఖ్యను వికర్ణంగా విభజిస్తుంది.
అందువల్ల, నేను అన్ని శ్రేణి వస్తువులపై ఒకదాని తరువాత ఒకటి చేస్తాను.
అందువల్ల, నేను అన్ని శ్రేణి వస్తువులపై ఒకదాని తరువాత ఒకటి చేస్తాను.
ప్రతి సి [i] కోసం, ప్రతి శ్రేణి వస్తువు కోసం, నేను కాంప్లెక్స్ను దరఖాస్తు చేసి ముద్రించాను.
ప్రతి సి [i] కోసం, ప్రతి శ్రేణి వస్తువు కోసం, నేను కాంప్లెక్స్ను దరఖాస్తు చేసి ముద్రించాను.
కాబట్టి, ఇవి ఇప్పుడు నేను కలిగి ఉన్న విభిన్న సంక్లిష్ట సంఖ్యలు; స్థానం 0 వద్ద, నాకు (0,0) ఉంది; 1 వ స్థానంలో, నాకు (1,1) ఉంది; రెండవ స్థానం, నాకు (2,2) ఉంది.
కాబట్టి, ఇవి ఇప్పుడు నేను కలిగి ఉన్న విభిన్న సంక్లిష్ట సంఖ్యలు; స్థానం 0 వద్ద, నాకు (0,0) ఉంది; 1 వ స్థానంలో, నాకు (1,1) ఉంది; రెండవ స్థానం, నాకు (2,2) ఉంది.
విపత్తు సంఘటనలు ఏ క్రమంలో జరుగుతాయో వివరించడానికి మాత్రమే నేను దీన్ని చేసాను.
విపత్తు సంఘటనలు ఏ క్రమంలో జరుగుతాయో వివరించడానికి మాత్రమే నేను దీన్ని చేసాను.
అందువల్ల, తిరిగి వచ్చే సమయంలో స్కోప్ అయిపోయినప్పుడు, డిస్ట్రాయర్లను ఖచ్చితంగా పిలవాలి.
అందువల్ల, తిరిగి వచ్చే సమయంలో స్కోప్ అయిపోయినప్పుడు, డిస్ట్రాయర్లను ఖచ్చితంగా పిలవాలి.
మరియు నియమం ప్రకారం, ఇది కన్స్ట్రక్టర్లు సంభవించిన క్రమం కనుక, సహజంగా డిస్ట్రక్టర్లు రివర్స్ ఆర్డర్లో ఉండాలి.
మరియు నియమం ప్రకారం, ఇది కన్స్ట్రక్టర్లు సంభవించిన క్రమం కనుక, సహజంగా డిస్ట్రక్టర్లు రివర్స్ ఆర్డర్లో ఉండాలి.
అంటే, సి [2] మొదట నాశనం అవుతుంది, తరువాత సి [1], తరువాత సి [0].
అంటే, సి [2] మొదట నాశనం అవుతుంది, తరువాత సి [1], తరువాత సి [0].
మీరు ఇక్కడ చూడగలిగే ఒక వాస్తవం ఏమిటంటే, డిస్ట్రక్టర్లు మొదట సంక్లిష్ట సంఖ్యలకు (2,2), తరువాత సి [1], కాంప్లెక్స్ సంఖ్యలకు (1,1) మరియు చివరకు సి [0] కొరకు డిస్ట్రక్టర్లు.
మీరు ఇక్కడ చూడగలిగే ఒక వాస్తవం ఏమిటంటే, డిస్ట్రక్టర్లు మొదట సంక్లిష్ట సంఖ్యలకు (2,2), తరువాత సి [1], కాంప్లెక్స్ సంఖ్యలకు (1,1) మరియు చివరకు సి [0] కొరకు డిస్ట్రక్టర్లు.
కాబట్టి, శ్రేణి వస్తువుల విషయంలో, వారి జీవితకాలం పరంగా ఏమి చేయాలో ఇది స్పష్టంగా చూపిస్తుంది.
కాబట్టి, శ్రేణి వస్తువుల విషయంలో, వారి జీవితకాలం పరంగా ఏమి చేయాలో ఇది స్పష్టంగా చూపిస్తుంది.
కాబట్టి, మళ్ళీ ఈ కన్స్ట్రక్టర్ల నుండి డిస్ట్రక్టర్ల వరకు మనకు అన్ని శ్రేణి మూలకాల జీవితకాలం ఉంది.
కాబట్టి, మళ్ళీ ఈ కన్స్ట్రక్టర్ల నుండి డిస్ట్రక్టర్ల వరకు మనకు అన్ని శ్రేణి మూలకాల జీవితకాలం ఉంది.
ఇప్పుడు, ఇక్కడ ఒక ప్రధాన ఫంక్షన్ ఉంది, కాని మేము ఇక్కడ ఒక వస్తువును గణాంకపరంగా నిర్వచించాము.
ఇప్పుడు, ఇక్కడ ఒక ప్రధాన ఫంక్షన్ ఉంది, కాని మేము ఇక్కడ ఒక వస్తువును గణాంకపరంగా నిర్వచించాము.
స్టాటిక్ ఫీల్డ్లో గ్లోబల్ స్టాటిక్ ఆబ్జెక్ట్ ఉంది.
స్టాటిక్ ఫీల్డ్లో గ్లోబల్ స్టాటిక్ ఆబ్జెక్ట్ ఉంది.
కాబట్టి, మిగతా తరగతి ఒకటే.
కాబట్టి, మిగతా తరగతి ఒకటే.
మీరు అవుట్పుట్ ఎందుకు చూడగలరో ఇక్కడ ఉంది.
మీరు అవుట్పుట్ ఎందుకు చూడగలరో ఇక్కడ ఉంది.
మరియు, ఏమి జరుగుతుందో అర్థం చేసుకోవడానికి ఇక్కడ అవుట్పుట్ ముఖ్యం.
మరియు, ఏమి జరుగుతుందో అర్థం చేసుకోవడానికి ఇక్కడ అవుట్పుట్ ముఖ్యం.
మరియు, కన్స్ట్రక్టర్ అవుట్పుట్ సందేశాన్ని ట్రాక్ చేస్తుంది.
మరియు, కన్స్ట్రక్టర్ అవుట్పుట్ సందేశాన్ని ట్రాక్ చేస్తుంది.
కాబట్టి, (4.2,5.3) కోసం నిర్మాత అవుట్పుట్ (అవుట్పుట్) సందేశం, మీరు చూసే ఈ గ్లోబల్ స్టాటిక్ ఆబ్జెక్ట్స్ మొదట ముద్రించబడతాయి, ప్రధానంగా ఇది మొదలయ్యే ముందు.
కాబట్టి, (4.2,5.3) కోసం నిర్మాత అవుట్పుట్ (అవుట్పుట్) సందేశం, మీరు చూసే ఈ గ్లోబల్ స్టాటిక్ ఆబ్జెక్ట్స్ మొదట ముద్రించబడతాయి, ప్రధానంగా ఇది మొదలయ్యే ముందు.
కాబట్టి, ఇది అందమైన సమాచారం.
కాబట్టి, ఇది అందమైన సమాచారం.
అతను ఒక అందమైన అవగాహన.
అతను ఒక అందమైన అవగాహన.
సి విషయానికొస్తే, ప్రతిదీ ప్రధాన నుండి మొదలవుతుందని మేము ఎల్లప్పుడూ అర్థం చేసుకున్నాము.
సి విషయానికొస్తే, ప్రతిదీ ప్రధాన నుండి మొదలవుతుందని మేము ఎల్లప్పుడూ అర్థం చేసుకున్నాము.
గణన ప్రధానంగా ప్రారంభమవుతుంది; యొక్క ప్రారంభం.
గణన ప్రధానంగా ప్రారంభమవుతుంది; యొక్క ప్రారంభం.
C ++ లో, ప్రధానమైనది ఇప్పటికీ ఎంట్రీ పాయింట్ ఫంక్షన్; ప్రధానమైనది ఇప్పటికీ మీరు C ++ ఫంక్షన్లో అందించాల్సిన ఫంక్షన్.
C ++ లో, ప్రధానమైనది ఇప్పటికీ ఎంట్రీ పాయింట్ ఫంక్షన్; ప్రధానమైనది ఇప్పటికీ మీరు C ++ ఫంక్షన్లో అందించాల్సిన ఫంక్షన్.
మరియు, ఇది సిస్టమ్ చేత పిలువబడే మొదటి ఫంక్షన్.
మరియు, ఇది సిస్టమ్ చేత పిలువబడే మొదటి ఫంక్షన్.
కానీ, గణన ప్రధానంగా ప్రారంభం కాదు.
కానీ, గణన ప్రధానంగా ప్రారంభం కాదు.
గణన ప్రధాన వస్తువుల కన్స్ట్రక్టర్లతో మొదలవుతుంది, ఇవి ప్రధాన కన్స్ట్రక్టర్ల ముందు ప్రారంభించాలి.
గణన ప్రధాన వస్తువుల కన్స్ట్రక్టర్లతో మొదలవుతుంది, ఇవి ప్రధాన కన్స్ట్రక్టర్ల ముందు ప్రారంభించాలి.
అందువల్ల, కీ ప్రారంభమయ్యే ముందు అన్ని స్థిర వస్తువుల కన్స్ట్రక్టర్లు సంభవిస్తాయి.
అందువల్ల, కీ ప్రారంభమయ్యే ముందు అన్ని స్థిర వస్తువుల కన్స్ట్రక్టర్లు సంభవిస్తాయి.
కాబట్టి, ఇక్కడ మిగిలినవి స్థానిక వస్తువు యొక్క కన్స్ట్రక్టర్లు.
కాబట్టి, ఇక్కడ మిగిలినవి స్థానిక వస్తువు యొక్క కన్స్ట్రక్టర్లు.
మళ్ళీ, ఈ రెండు అంశాలను ఉపయోగించడం జీవితాంతం కొనసాగుతుంది.
మళ్ళీ, ఈ రెండు అంశాలను ఉపయోగించడం జీవితాంతం కొనసాగుతుంది.
మరియు, d అనేది స్థానిక వస్తువు కాబట్టి, ఇది ప్రధాన డొమైన్ చివరికి చేరుకున్నప్పుడు, d ను డిస్ట్రక్టర్స్ అంటారు.
మరియు, d అనేది స్థానిక వస్తువు కాబట్టి, ఇది ప్రధాన డొమైన్ చివరికి చేరుకున్నప్పుడు, d ను డిస్ట్రక్టర్స్ అంటారు.
మరియు, ఇక్కడ కనిపించనిది చీఫ్ వాస్తవానికి తిరిగి వచ్చినప్పుడు.
మరియు, ఇక్కడ కనిపించనిది చీఫ్ వాస్తవానికి తిరిగి వచ్చినప్పుడు.
మరియు, ఈ స్టాటిక్ ఆబ్జెక్ట్ కోసం సి డిస్ట్రక్టర్లు ప్రధాన రిటర్న్ను అనుసరిస్తారు, ఇది సరిపోతుంది. LIFO స్ట్రాటజీతో డిస్ట్రక్టర్ల క్రమం కన్స్ట్రక్టర్ల క్రమానికి వ్యతిరేకం అని చెప్పింది.
మరియు, ఈ స్టాటిక్ ఆబ్జెక్ట్ కోసం సి డిస్ట్రక్టర్లు ప్రధాన రిటర్న్ను అనుసరిస్తారు, ఇది సరిపోతుంది. LIFO స్ట్రాటజీతో డిస్ట్రక్టర్ల క్రమం కన్స్ట్రక్టర్ల క్రమానికి వ్యతిరేకం అని చెప్పింది.
కాబట్టి, నేను ఒక సాధారణ వస్తువు గురించి మాత్రమే మాట్లాడితే, అక్కడ ఒకే స్టాటిక్ ఆబ్జెక్ట్ మాత్రమే ఉంటే, కమాండ్ ఆ స్టాటిక్ ఆబ్జెక్ట్ యొక్క కన్స్ట్రక్టర్స్ (కన్స్ట్రక్టర్స్) ను ప్రధాన కాల్ చేస్తుంది.
కాబట్టి, నేను ఒక సాధారణ వస్తువు గురించి మాత్రమే మాట్లాడితే, అక్కడ ఒకే స్టాటిక్ ఆబ్జెక్ట్ మాత్రమే ఉంటే, కమాండ్ ఆ స్టాటిక్ ఆబ్జెక్ట్ యొక్క కన్స్ట్రక్టర్స్ (కన్స్ట్రక్టర్స్) ను ప్రధాన కాల్ చేస్తుంది.
కన్స్ట్రక్టర్లు ప్రధాన స్థానిక వస్తువులను చేస్తారు; ప్రధాన ఉచ్చుల పరిధికి స్థిరమైన మరియు స్థానిక వస్తువులను ఉపయోగించండి.
కన్స్ట్రక్టర్లు ప్రధాన స్థానిక వస్తువులను చేస్తారు; ప్రధాన ఉచ్చుల పరిధికి స్థిరమైన మరియు స్థానిక వస్తువులను ఉపయోగించండి.
మరియు, ప్రధాన పరిధి చివరిలో, స్థానిక వస్తువులను నాశనం చేయండి.
మరియు, ప్రధాన పరిధి చివరిలో, స్థానిక వస్తువులను నాశనం చేయండి.
ప్రధాన రాబడి అప్పుడు సృష్టించిన స్టాటిక్ వస్తువును నాశనం చేస్తుంది.
ప్రధాన రాబడి అప్పుడు సృష్టించిన స్టాటిక్ వస్తువును నాశనం చేస్తుంది.
మరియు ఇది ఇది; అందువల్ల, C ++ లో కోడ్ను అమలు చేయడానికి వాస్తవానికి స్కోప్ ఉంది, ప్రధాన ప్రారంభానికి ముందు మరియు ప్రధాన ముగింపు తర్వాత.
మరియు ఇది ఇది; అందువల్ల, C ++ లో కోడ్ను అమలు చేయడానికి వాస్తవానికి స్కోప్ ఉంది, ప్రధాన ప్రారంభానికి ముందు మరియు ప్రధాన ముగింపు తర్వాత.
చివరి ఉదాహరణ డైనమిక్ కేటాయింపు సందర్భంలో.
చివరి ఉదాహరణ డైనమిక్ కేటాయింపు సందర్భంలో.
ఎలా చూశాము; వివిధ డైనమిక్ కేటాయింపు ఆపరేటర్లు, ఆపరేటర్ కొత్త మరియు మొదలైనవి.
ఎలా చూశాము; వివిధ డైనమిక్ కేటాయింపు ఆపరేటర్లు, ఆపరేటర్ కొత్త మరియు మొదలైనవి.
అందువల్ల, మేము మళ్ళీ వివరించడానికి కాంప్లెక్స్ను ఉపయోగిస్తాము.
అందువల్ల, మేము మళ్ళీ వివరించడానికి కాంప్లెక్స్ను ఉపయోగిస్తాము.
ఈ ఆపరేటర్ కొత్త ప్రయోగం చేస్తున్నారు.
ఈ ఆపరేటర్ కొత్త ప్రయోగం చేస్తున్నారు.
నేను సంక్లిష్టమైన వస్తువును చేయగలను.
నేను సంక్లిష్టమైన వస్తువును చేయగలను.
నేను ఉపయోగించగలను; సంక్లిష్ట వస్తువుల శ్రేణిని సృష్టించడానికి ఆపరేటర్ కొత్త శ్రేణి రూపాన్ని సృష్టించండి.
నేను ఉపయోగించగలను; సంక్లిష్ట వస్తువుల శ్రేణిని సృష్టించడానికి ఆపరేటర్ కొత్త శ్రేణి రూపాన్ని సృష్టించండి.
నేను ఆపరేటర్ ప్లేస్మెంట్ చేయగలను, ఒక వస్తువు కోసం ఇచ్చిన బఫర్లో కొత్త ప్లేస్మెంట్ చేయగలను.
నేను ఆపరేటర్ ప్లేస్మెంట్ చేయగలను, ఒక వస్తువు కోసం ఇచ్చిన బఫర్లో కొత్త ప్లేస్మెంట్ చేయగలను.
ఇప్పుడు, కొత్తగా ఉన్నప్పుడు, అది మొదట కొత్త మెమరీని కేటాయిస్తుంది మరియు తరువాత కన్స్ట్రక్టర్లుగా ఉంటుంది.
ఇప్పుడు, కొత్తగా ఉన్నప్పుడు, అది మొదట కొత్త మెమరీని కేటాయిస్తుంది మరియు తరువాత కన్స్ట్రక్టర్లుగా ఉంటుంది.
అందువల్ల, స్వయంచాలక లేదా స్థిర వస్తువుల మాదిరిగానే, కన్స్ట్రక్టర్లు అవ్యక్తంగా ఉన్నారు.
అందువల్ల, స్వయంచాలక లేదా స్థిర వస్తువుల మాదిరిగానే, కన్స్ట్రక్టర్లు అవ్యక్తంగా ఉన్నారు.
అదేవిధంగా, క్రొత్తది కన్స్ట్రక్టర్లను కూడా కలిగి ఉంది.
అదేవిధంగా, క్రొత్తది కన్స్ట్రక్టర్లను కూడా కలిగి ఉంది.
ఒకే తేడా ఏమిటంటే, కన్స్ట్రక్టర్ల ముందు, క్రొత్తది వాస్తవానికి డైనమిక్గా మెమరీని కేటాయిస్తుంది.
ఒకే తేడా ఏమిటంటే, కన్స్ట్రక్టర్ల ముందు, క్రొత్తది వాస్తవానికి డైనమిక్గా మెమరీని కేటాయిస్తుంది.
కాబట్టి, క్రొత్త మరియు ఈ శ్రేణి యొక్క రెండు రూపాలు మెమరీని కేటాయించి, ఆపై అవసరమైన కన్స్ట్రక్టర్ను పిలుస్తాయి.
కాబట్టి, క్రొత్త మరియు ఈ శ్రేణి యొక్క రెండు రూపాలు మెమరీని కేటాయించి, ఆపై అవసరమైన కన్స్ట్రక్టర్ను పిలుస్తాయి.
కాబట్టి, ఇవి విడుదలైనప్పుడు, నేను PC ని తొలగించినట్లు, అంటే, నేను ఈ వస్తువును విడుదల చేయడానికి ప్రయత్నిస్తున్నాను.
కాబట్టి, ఇవి విడుదలైనప్పుడు, నేను PC ని తొలగించినట్లు, అంటే, నేను ఈ వస్తువును విడుదల చేయడానికి ప్రయత్నిస్తున్నాను.
అప్పుడు, ఇది డిలీట్ డిస్ట్రక్టర్ అని పిలుస్తుంది, ఇది కన్స్ట్రక్టర్ కాల్ ప్రకారం ఉంటుంది మరియు అది మెమరీని విడుదల చేస్తుంది.
అప్పుడు, ఇది డిలీట్ డిస్ట్రక్టర్ అని పిలుస్తుంది, ఇది కన్స్ట్రక్టర్ కాల్ ప్రకారం ఉంటుంది మరియు అది మెమరీని విడుదల చేస్తుంది.
కాబట్టి, క్రొత్తదాన్ని తీసివేయవద్దు మరియు; క్రొత్త మరియు తొలగించడం మాలోక్ మరియు ఉచితం అని మేము ముందే చెప్పాము.
కాబట్టి, క్రొత్తదాన్ని తీసివేయవద్దు మరియు; క్రొత్త మరియు తొలగించడం మాలోక్ మరియు ఉచితం అని మేము ముందే చెప్పాము.
అయినప్పటికీ, అవి వాస్తవానికి మాలోక్ మరియు ఉచితం కాదు ఎందుకంటే మల్లోక్ మెమరీని మాత్రమే కేటాయిస్తుంది, కానీ కొత్త మెమరీని కేటాయిస్తుంది మరియు కన్స్ట్రక్టర్ను ఉచితంగా పిలుస్తుంది.
అయినప్పటికీ, అవి వాస్తవానికి మాలోక్ మరియు ఉచితం కాదు ఎందుకంటే మల్లోక్ మెమరీని మాత్రమే కేటాయిస్తుంది, కానీ కొత్త మెమరీని కేటాయిస్తుంది మరియు కన్స్ట్రక్టర్ను ఉచితంగా పిలుస్తుంది.
కాబట్టి, ఈ వ్యత్యాసాన్ని గుర్తుంచుకోవాలి.
కాబట్టి, ఈ వ్యత్యాసాన్ని గుర్తుంచుకోవాలి.
ఈ ప్రోగ్రామ్ యొక్క మొత్తం అవుట్పుట్ ఇక్కడ చూపబడింది.
ఈ ప్రోగ్రామ్ యొక్క మొత్తం అవుట్పుట్ ఇక్కడ చూపబడింది.
మీరు దీన్ని చేయవచ్చు; ఏమి జరుగుతుందో మీరు జాగ్రత్తగా అర్థం చేసుకోవాలి.
మీరు దీన్ని చేయవచ్చు; ఏమి జరుగుతుందో మీరు జాగ్రత్తగా అర్థం చేసుకోవాలి.
ఇక్కడ, ఇది డైనమిక్ కేటాయింపు కనుక, కేటాయింపు చేసినప్పుడు వినియోగదారుకు పూర్తి స్వేచ్ఛ ఉంటుంది; ఒక వస్తువును ఎప్పుడు సృష్టించాలి మరియు దానిని నాశనం చేయడం ద్వారా తొలగించండి.
ఇక్కడ, ఇది డైనమిక్ కేటాయింపు కనుక, కేటాయింపు చేసినప్పుడు వినియోగదారుకు పూర్తి స్వేచ్ఛ ఉంటుంది; ఒక వస్తువును ఎప్పుడు సృష్టించాలి మరియు దానిని నాశనం చేయడం ద్వారా తొలగించండి.
మరియు, వారి మధ్య జీవితకాలం పరిమితం.
మరియు, వారి మధ్య జీవితకాలం పరిమితం.
మీరు గుర్తుంచుకోవలసిన ఏకైక మినహాయింపు ఏమిటంటే, మీరు ప్లేస్మెంట్ను పునరుద్ధరిస్తుంటే, మేము ఇంతకుముందు చెప్పినట్లుగా, మెమరీ కేటాయింపు చేయకూడదు.
మీరు గుర్తుంచుకోవలసిన ఏకైక మినహాయింపు ఏమిటంటే, మీరు ప్లేస్మెంట్ను పునరుద్ధరిస్తుంటే, మేము ఇంతకుముందు చెప్పినట్లుగా, మెమరీ కేటాయింపు చేయకూడదు.
బఫర్ విషయంలో ఇది వినియోగదారుచే అందించబడుతుంది.
బఫర్ విషయంలో ఇది వినియోగదారుచే అందించబడుతుంది.
అందువల్ల, క్రొత్త ప్లేస్మెంట్ ద్వారా సృష్టించబడిన పాయింటర్పై మీరు పాయింటర్ను తొలగించలేరు.
అందువల్ల, క్రొత్త ప్లేస్మెంట్ ద్వారా సృష్టించబడిన పాయింటర్పై మీరు పాయింటర్ను తొలగించలేరు.
కాబట్టి, ప్లేస్మెంట్ కొత్తగా సృష్టించబడిన ఈ ఆబ్జెక్ట్ కోసం, మీరు స్పష్టమైన డిస్ట్రక్టర్లుగా ఏదైనా చేయాలి.
కాబట్టి, ప్లేస్మెంట్ కొత్తగా సృష్టించబడిన ఈ ఆబ్జెక్ట్ కోసం, మీరు స్పష్టమైన డిస్ట్రక్టర్లుగా ఏదైనా చేయాలి.
అంటే, ఆ పాయింటర్లో మీరు నిజంగా కాంప్లెక్స్ యొక్క డిస్ట్రక్టర్లను పిలవాలి.
అంటే, ఆ పాయింటర్లో మీరు నిజంగా కాంప్లెక్స్ యొక్క డిస్ట్రక్టర్లను పిలవాలి.
కాబట్టి, మీరు డిస్ట్రక్టర్లను స్పష్టంగా పిలిచే చాలా అరుదైన సందర్భాలలో ఇది ఒకటి, ఎందుకంటే ఇక్కడ తొలగించే ఆపరేషన్లో ప్యాక్ చేయలేము ఎందుకంటే తొలగించాల్సిన మెమరీ తొలగించబడుతుంది.) జారీ చేయవలసి ఉంటుంది, ఇది మీకు ఇక్కడ లేదు.
కాబట్టి, మీరు డిస్ట్రక్టర్లను స్పష్టంగా పిలిచే చాలా అరుదైన సందర్భాలలో ఇది ఒకటి, ఎందుకంటే ఇక్కడ తొలగించే ఆపరేషన్లో ప్యాక్ చేయలేము ఎందుకంటే తొలగించాల్సిన మెమరీ తొలగించబడుతుంది.) జారీ చేయవలసి ఉంటుంది, ఇది మీకు ఇక్కడ లేదు.
మరియు, ఇది సూచించబడదు ఎందుకంటే ఇది మీరే నిర్వహించాలనుకునే డైనమిక్ ప్రక్రియ.
మరియు, ఇది సూచించబడదు ఎందుకంటే ఇది మీరే నిర్వహించాలనుకునే డైనమిక్ ప్రక్రియ.
కాబట్టి, ఇది మొత్తం జీవితకాల ప్రక్రియ.
కాబట్టి, ఇది మొత్తం జీవితకాల ప్రక్రియ.
దయచేసి, ఈ జాగ్రత్తగా జతచేయడం ద్వారా వెళ్ళండి, ఎందుకంటే కన్స్ట్రక్టర్లు, డిస్ట్రక్టర్లు మరియు సంబంధిత వస్తువులు చాలా కాలం జీవితకాలం కలిగివుంటాయి, ఇది సి ++ లోని ఆబ్జెక్ట్ మేనేజ్మెంట్ యొక్క ప్రధాన భావనలలో ఒకటి.
దయచేసి, ఈ జాగ్రత్తగా జతచేయడం ద్వారా వెళ్ళండి, ఎందుకంటే కన్స్ట్రక్టర్లు, డిస్ట్రక్టర్లు మరియు సంబంధిత వస్తువులు చాలా కాలం జీవితకాలం కలిగివుంటాయి, ఇది సి ++ లోని ఆబ్జెక్ట్ మేనేజ్మెంట్ యొక్క ప్రధాన భావనలలో ఒకటి.
మరియు, తరువాతి వారాల్లో మేము తదుపరి మాడ్యూళ్ళలో ఏమి చేస్తాము అనేది కన్స్ట్రక్టర్లు మరియు కన్స్ట్రక్టర్లు మరియు డిస్ట్రక్టర్లపై మీ అవగాహనపై పూర్తిగా ఆధారపడి ఉంటుంది.
మరియు, తరువాతి వారాల్లో మేము తదుపరి మాడ్యూళ్ళలో ఏమి చేస్తాము అనేది కన్స్ట్రక్టర్లు మరియు కన్స్ట్రక్టర్లు మరియు డిస్ట్రక్టర్లపై మీ అవగాహనపై పూర్తిగా ఆధారపడి ఉంటుంది.
ఈ మాడ్యూల్లో మనం చర్చించినవన్నీ ఈ సారాంశంలో ఇవ్వబడ్డాయి.
ఈ మాడ్యూల్లో మనం చర్చించినవన్నీ ఈ సారాంశంలో ఇవ్వబడ్డాయి.
కాబట్టి, మీరు ఈ పాయింట్లన్నింటినీ అర్థం చేసుకున్నారని మీరు ఇప్పుడు తనిఖీ చేయవచ్చు.
కాబట్టి, మీరు ఈ పాయింట్లన్నింటినీ అర్థం చేసుకున్నారని మీరు ఇప్పుడు తనిఖీ చేయవచ్చు.
ఉదాహరణకు, సి 2 యొక్క ఈ ఆవశ్యకతను మనం చూసినట్లయితే, ఎప్పుడు సి 2 త్వరగా పొందబడుతుందో, అప్పుడు సహజంగానే ఈ కన్స్ట్రక్టర్తో ఒక కన్స్ట్రక్టర్ ఆహ్వానించబడతారు.
ఉదాహరణకు, సి 2 యొక్క ఈ ఆవశ్యకతను మనం చూసినట్లయితే, ఎప్పుడు సి 2 త్వరగా పొందబడుతుందో, అప్పుడు సహజంగానే ఈ కన్స్ట్రక్టర్తో ఒక కన్స్ట్రక్టర్ ఆహ్వానించబడతారు.
అయితే, సి 1, సి 1 తక్షణం చేయబడినప్పుడు, రెండు పారామితులతో కూడిన కన్స్ట్రక్టర్ ఆహ్వానించబడతారు, కాబట్టి ఈ సందర్భంలో ఓవర్లోడ్ చేసిన కన్స్ట్రక్టర్ (ల) యొక్క అన్ని నియమాలు వర్తిస్తాయి.
అయితే, సి 1, సి 1 తక్షణం చేయబడినప్పుడు, రెండు పారామితులతో కూడిన కన్స్ట్రక్టర్ ఆహ్వానించబడతారు, కాబట్టి ఈ సందర్భంలో ఓవర్లోడ్ చేసిన కన్స్ట్రక్టర్ (ల) యొక్క అన్ని నియమాలు వర్తిస్తాయి.
ఈ విధంగా కన్స్ట్రక్టర్లను లోడ్ చేయవచ్చు మరియు మేము వివిధ రకాల పారామితులు మరియు వాటి కలయికల పరంగా బిల్డ్ ప్రాసెస్ను వ్రాయవచ్చు మరియు మనం వెళ్తున్నప్పుడు, వివిధ తరగతుల కోసం ఓవర్లోడ్ నిర్మాణాలు ఎలా జరుగుతాయో చెప్పడానికి ఇంకా చాలా ఉదాహరణలు చూస్తాము. మేము నిర్మించిన చాలా ప్రభావవంతమైన నిర్మాణ విధానాలను వ్రాయడానికి.
ఈ విధంగా కన్స్ట్రక్టర్లను లోడ్ చేయవచ్చు మరియు మేము వివిధ రకాల పారామితులు మరియు వాటి కలయికల పరంగా బిల్డ్ ప్రాసెస్ను వ్రాయవచ్చు మరియు మనం వెళ్తున్నప్పుడు, వివిధ తరగతుల కోసం ఓవర్లోడ్ నిర్మాణాలు ఎలా జరుగుతాయో చెప్పడానికి ఇంకా చాలా ఉదాహరణలు చూస్తాము. మేము నిర్మించిన చాలా ప్రభావవంతమైన నిర్మాణ విధానాలను వ్రాయడానికి.
కాబట్టి, మీరు దాని కోసం మళ్ళీ కన్స్ట్రక్టర్ను కాపీ చేస్తారు.
కాబట్టి, మీరు దాని కోసం మళ్ళీ కన్స్ట్రక్టర్ను కాపీ చేస్తారు.
కాబట్టి, ఇప్పుడు మేము దీనిపై శీఘ్ర ఉదాహరణ ఇస్తాము.
కాబట్టి, ఇప్పుడు మేము దీనిపై శీఘ్ర ఉదాహరణ ఇస్తాము.
కాబట్టి, మళ్ళీ మా సంక్లిష్ట తరగతికి, ఇక్కడ వేరే ఏమీ లేదు, మనం ఇక్కడ ఒక ఫంక్షన్ డిస్ప్లేను జోడించాము, అది ఇక్కడ ఒక సంక్లిష్ట సంఖ్యను తీసుకుంటుంది మరియు దానిని ప్రింట్ చేస్తుంది మరియు మేము రూపొందించిన తరంగ రూపాన్ని ఈ ప్రదర్శనను ప్రదర్శిస్తుంది.
కాబట్టి, మళ్ళీ మా సంక్లిష్ట తరగతికి, ఇక్కడ వేరే ఏమీ లేదు, మనం ఇక్కడ ఒక ఫంక్షన్ డిస్ప్లేను జోడించాము, అది ఇక్కడ ఒక సంక్లిష్ట సంఖ్యను తీసుకుంటుంది మరియు దానిని ప్రింట్ చేస్తుంది మరియు మేము రూపొందించిన తరంగ రూపాన్ని ఈ ప్రదర్శనను ప్రదర్శిస్తుంది.
కాబట్టి, ఇది విలువ ద్వారా పిలుపు.
కాబట్టి, ఇది విలువ ద్వారా పిలుపు.
అందువల్ల, ఇప్పుడు మీరు కన్స్ట్రక్టర్లను సహజంగా పిలిచే క్రమాన్ని పరిశీలిస్తే, మొదటిది అమలు అవుతుంది.
అందువల్ల, ఇప్పుడు మీరు కన్స్ట్రక్టర్లను సహజంగా పిలిచే క్రమాన్ని పరిశీలిస్తే, మొదటిది అమలు అవుతుంది.
కాబట్టి, కన్స్ట్రక్టర్ ఇన్వాయిస్ చేయబడింది; ఈ అవుట్పుట్.
కాబట్టి, కన్స్ట్రక్టర్ ఇన్వాయిస్ చేయబడింది; ఈ అవుట్పుట్.
...
@@ -191,5 +190,3 @@
...
@@ -191,5 +190,3 @@
కాపీ ఆపరేటర్ అసైన్మెంట్లో, కాపీ క్లోన్ అంటే ఏమిటో మేము ప్రత్యేకంగా వ్రాసాము, తద్వారా ఇది మీ కాపీ అసైన్మెంట్ అసైన్మెంట్ ఆపరేటర్ నుండి ఏమిటో మీకు తెలుస్తుంది.
కాపీ ఆపరేటర్ అసైన్మెంట్లో, కాపీ క్లోన్ అంటే ఏమిటో మేము ప్రత్యేకంగా వ్రాసాము, తద్వారా ఇది మీ కాపీ అసైన్మెంట్ అసైన్మెంట్ ఆపరేటర్ నుండి ఏమిటో మీకు తెలుస్తుంది.
కాబట్టి, ఇది C1 కు C2 ను కాపీ చేస్తుంది మరియు తరువాత, మీరు C2 అంటే ఏమిటో ప్రింట్ షోను చూడవచ్చు, ఆపై ఈ రెండు మొదటి C2 ను 3 కి కేటాయించిన తరువాత, ఫలితం C1 కు కేటాయించబడుతుంది మరియు తరువాత, అవి ముద్రించి సహజంగా వాటి క్రమాన్ని రివర్స్ చేస్తాయి విధ్వంసం.
కాబట్టి, ఇది C1 కు C2 ను కాపీ చేస్తుంది మరియు తరువాత, మీరు C2 అంటే ఏమిటో ప్రింట్ షోను చూడవచ్చు, ఆపై ఈ రెండు మొదటి C2 ను 3 కి కేటాయించిన తరువాత, ఫలితం C1 కు కేటాయించబడుతుంది మరియు తరువాత, అవి ముద్రించి సహజంగా వాటి క్రమాన్ని రివర్స్ చేస్తాయి విధ్వంసం.
కాబట్టి, తరగతిలోని వేర్వేరు వస్తువులకు కాపీ కేటాయింపు ప్రక్రియను ఇది స్పష్టంగా మీకు చూపుతుంది.
కాబట్టి, తరగతిలోని వేర్వేరు వస్తువులకు కాపీ కేటాయింపు ప్రక్రియను ఇది స్పష్టంగా మీకు చూపుతుంది.
అందువల్ల, డీపైన కాపీ(deep copy)తర్వాత 2 గమనికలు బహుశా ఈ రెండు విభిన్న కాపీలు ఇదే బహుశా ఒకే ఆబ్జెక్ట్ తరువాత, కానీ అవి వివిధ ఆబ్జెక్ట్ లు మారింది.
అందువల్ల, డీపైన కాపీ(deep copy)తర్వాత 2 గమనికలు బహుశా ఈ రెండు విభిన్న కాపీలు ఇదే బహుశా ఒకే ఆబ్జెక్ట్ తరువాత, కానీ అవి వివిధ ఆబ్జెక్ట్ లు మారింది.
కాబట్టి, డీపైన కాపీ(deep copy)మరియు షాలో కాపీ(shallow copy)సహజంగా న్యాయంగా ఉపయోగించబడుతుంది.
కాబట్టి, డీపైన కాపీ(deep copy)మరియు షాలో కాపీ(shallow copy)సహజంగా న్యాయంగా ఉపయోగించబడుతుంది.
ఇది అవసరమైతే ఖచ్చితంగా ఉండకపోతే, మేము డీప్ కాపీని చేయటానికి ప్రయత్నించము ఎందుకంటే ఎందుకంటే అది సున్నితమైనదిగా ఉన్న కాచెడ్ డేటా యొక్క కాపీని కలిగి ఉంటుంది, ఎందుకంటే పునరావృత తర్కం ద్వారా మళ్లీ కాపీ కన్స్ట్రక్షన్(copy construction) అవసరం అవుతుంది, కానీ భద్రత పరంగా, డీపైన కాపీ(deep copy)ని ఉపయోగించి షాలో కాపీ(shallow copy)ని ఉపయోగించి పోలిస్తే తరచూ మరింత సురక్షితం.
ఇది అవసరమైతే ఖచ్చితంగా ఉండకపోతే, మేము డీప్ కాపీని చేయటానికి ప్రయత్నించము ఎందుకంటే ఎందుకంటే అది సున్నితమైనదిగా ఉన్న కాచెడ్ డేటా యొక్క కాపీని కలిగి ఉంటుంది, ఎందుకంటే పునరావృత తర్కం ద్వారా మళ్లీ కాపీ కన్స్ట్రక్షన్(copy construction) అవసరం అవుతుంది, కానీ భద్రత పరంగా, డీపైన కాపీ(deep copy)ని ఉపయోగించి షాలో కాపీ(shallow copy)ని ఉపయోగించి పోలిస్తే తరచూ మరింత సురక్షితం.
ఆబ్జెక్ట్ యొక్క జీవితకాలం యొక్క మునుపటి ఉదాహరణలలో మేము క్రమం తప్పకుండా ఒక విలువను మరొకదానికి కాపీ చేస్తున్నామని మీరు ఇప్పటికే చూశారు, కాని కాపీ చేసిన విలువలు సాధారణంగా నిర్మించిన చోట ఉంటాయి. మన వద్ద ఉన్న డేటా సభ్యుల కోసం సాధారణంగా అంతర్లీన రకానికి చెందినవి, కానీ నేను కలిగి ఉంటే యూజర్ యొక్క విలువను కాపీ చేయడం డేటా సభ్యునిగా నిర్వచించబడుతుంది, అప్పుడు నేను విలువ స్థితి ద్వారా కాల్ చేసిన పరిస్థితిని ఎదుర్కొంటాను.
ఆబ్జెక్ట్ యొక్క జీవితకాలం యొక్క మునుపటి ఉదాహరణలలో మేము క్రమం తప్పకుండా ఒక విలువను మరొకదానికి కాపీ చేస్తున్నామని మీరు ఇప్పటికే చూశారు, కాని కాపీ చేసిన విలువలు సాధారణంగా నిర్మించిన చోట ఉంటాయి. మన వద్ద ఉన్న డేటా సభ్యుల కోసం సాధారణంగా అంతర్లీన రకానికి చెందినవి, కానీ నేను కలిగి ఉంటే యూజర్ యొక్క విలువను కాపీ చేయడం డేటా సభ్యునిగా నిర్వచించబడుతుంది, అప్పుడు నేను విలువ స్థితి ద్వారా కాల్ చేసిన పరిస్థితిని ఎదుర్కొంటాను.
అందువల్ల, UDT యొక్క డేటా సభ్యులను పరిచయం చేయడానికి కాపీ కన్స్ట్రక్టర్ ఉనికి అవసరం, అది లేకుండా ఆ సంబంధిత రకానికి చెందిన డేటా సభ్యుడిని నిర్వచించలేము.
అందువల్ల, UDT యొక్క డేటా సభ్యులను పరిచయం చేయడానికి కాపీ కన్స్ట్రక్టర్ ఉనికి అవసరం, అది లేకుండా ఆ సంబంధిత రకానికి చెందిన డేటా సభ్యుడిని నిర్వచించలేము.
మేము ఇప్పుడే చూశాము; మేము ఆబ్జెక్ట్ జీవితకాలం పున ited సమీక్షించాము మరియు వేర్వేరు ఆబ్జెక్ట్ జీవితకాల దృశ్యాలకు, ప్రత్యేకించి వినియోగదారు నిర్వచించిన రకాలు మరియు డేటా సభ్యుల ఆదేశాలతో మేము మరింత లోతుగా శ్రద్ధ వహించాము.) ఇష్యూ మరియు ఆబ్జెక్ట్ యొక్క జీవితకాలంపై వాటి ఫలితం చర్చించబడింది మరియు మనకు ఇప్పుడే ఉంది కాపీ కన్స్ట్రక్టర్ను ప్రారంభించారు.
మేము ఇప్పుడే చూశాము; మేము ఆబ్జెక్ట్ జీవితకాలం పున ited సమీక్షించాము మరియు వేర్వేరు ఆబ్జెక్ట్ జీవితకాల దృశ్యాలకు, ప్రత్యేకించి వినియోగదారు నిర్వచించిన రకాలు మరియు డేటా సభ్యుల ఆదేశాలతో మేము మరింత లోతుగా శ్రద్ధ వహించాము.) ఇష్యూ మరియు ఆబ్జెక్ట్ యొక్క జీవితకాలంపై వాటి ఫలితం చర్చించబడింది మరియు మనకు ఇప్పుడే ఉంది కాపీ కన్స్ట్రక్టర్ను ప్రారంభించారు.
మేము ముందు భాగం లో ఈ మాడ్యూల్ గురించి చర్చిస్తున్నాము మరియు మేము డిఫాల్ట్ పారామితులు( default parameters) గురించి మాట్లాడారు.
ఇప్పుడు, మనం ఫంక్షన్ ఓవర్లోడింగ్( function overloading) గురించి చర్చిస్తాం.
ఫంక్షన్ ఓవర్లోడింగ్ ను అర్ధం చేసుకోవటానికి, మొదట ఒక ఫంక్షన్ ఓవర్లోడింగ్( function overloading) వంటిది ఎందుకు అవసరమో మరియు అది అర్థం కావచ్చని ఎందుకు వివరించాలో మనకు ఉదాహరణగా తీసుకుంటాము.
కాబట్టి, ఇక్కడ C.
లో ఒక ఉదాహరణ.
ఇది మాత్రికలను గుణించడం, మ్యాట్రిక్స్లతో వెక్టర్లను( vectors) గుణించడం లేదా వెక్టర్లను గుణించాలి.
కాబట్టి, ఇక్కడ ఇచ్చిన నిర్వచనాలకు మీరు కొద్దిగా జాగ్రత్తగా చూస్తే, ముందుగా మేము మూడు రకాలను నిర్వచించాము, ఇవి అలియాస్.
మాట్రిక్స్( matrix) ఈ రెండు ఉదాహరణలలో మనము తీసుకున్న ద్వి-మితీయ చతురస్ర మాత్రిక( two dimensional square matrix).
అప్పుడు, రెండవ VecRow లో.
ఈ VecRow లో ఒక వరుస వెక్టర్ మరియు VecCol కాలమ్ వెక్టర్.
కాబట్టి, మీరు వీటిని అర్ధం చేసుకోవచ్చు.
ఈ మీరు ఈ చూడవచ్చు.
కాబట్టి, ఈ మూడు రకాలు మరియు, మనకు కావలసినది ఏమిటంటే అది మాత్రిక గుణకారం యొక్క నియమావళి ద్వారా నిర్వచించబడుతుంది, వాటిని గుణించటానికి ఫంక్షన్ రాయాలనుకుంటున్నాము.
మొదటి ఫంక్షన్ రెండు మాత్రికలను గుణిస్తే మరియు ఫలితం మాత్రికను అందిస్తుంది.
'మ్యాట్ ఎ' చతురస్ర మాత్రిక a( square matrix a), 'Mat b' మరొక చతురస్ర మాత్రిక మరియు వాటిలో రెండింటి పరిమాణం 10 అని మీరు సులభంగా చూడవచ్చు.
కాబట్టి, నేను వాటిని గుణించి ఉంటే, నేను మరొక చతురస్ర మాత్రిక c( square matrix c) ను పొందుతాను నియమాలు మరియు మీరు ఈ సి చేస్తున్నప్పటి నుండి, విలువ ద్వారా కాల్, మేము ఈ ఫంక్షన్(function) నుండి అవుట్పుట్(output) పొందడానికి గమనికలు ఉపయోగించడానికి అవసరం.
ఇప్పుడు, నేను ఒక గుణకారం నిర్వచించాలనుకుంటున్నాను, ఇది ఒక చతురస్ర మాత్రిక 'a' మరియు ఒక నిలువు వెక్టర్ b(column vector) 'మధ్య ఉన్న రెండవది.
నేను అలా చేస్తే సహజంగానే నేను కాలమ్ వెక్టార్ను( column vector c) పొందుతాను.
ఇప్పుడు మనం మరల్చిన నియమాలపై పునశ్చరణ చేస్తే, మీకు మాడ్రిసీస్ గుణించినా, మీకు తెలిసిన వారందరికి తెలిసిన వరుసల కాలవ్యవధి మరియు ఇక్కడ వివరించడానికి నాకు అవసరం లేదు.
మీరు రెండు మాత్రికలను గుణించడం లేదా ఒక మ్యాట్రిక్స్ను గుణించడం లేదా ఒక చదరపు మాత్రికను ఒకే పరిమాణం యొక్క నిలువు వెక్టర్తో గుణించడం మధ్య ఏదైనా తేడా లేదని మీకు తెలుస్తుంది.
మీ ఫలితంగా వ్యత్యాసం మాత్రమే కాలమ్ వెక్టర్( column vector) అవుతుంది మరియు మీరు కొనసాగితే, మేము మూడవ వైపు చూస్తే, ఇది వరుసగా వెక్టర్ ద్వారా మాత్రిక యొక్క ముందస్తు గుణకం అవుతుంది.
మీరు నాల్గవ రూపాన్ని చూస్తే, అది ఒక వరుస వెక్టర్ ద్వారా ఒక నిలువు వెక్టర్ యొక్క గుణకారం అవుతుంది, దాని ఫలితం చతురస్ర మాత్రికగా( square matrix) మారుతుంది మరియు ఐదవ వంతులో, మీరుసి 'ను పొందుతారు, ఒక రో వెక్టర్ ( row vector)గుణకారం ఒకే విలువగా ఉంటుంది.
ఇప్పుడు, ఇదే అన్ని గుణకారం కోసం అదే అల్గోరిథంను( algorithm) అనుసరిస్తుంది, కానీ నేను వాటిని వ్యక్తీకరించాలనుకుంటే, వాటిని C భాషలో కోడ్ చేయండి, నేను అన్ని వేర్వేరు పేర్లను అందించాలి.
మీరు ఈ భాగాన్ని చూస్తే, ఈ ఫంక్షన్లకు వివిధ పేర్లను నేను అందించాలి ఎందుకంటే అవి వేర్వేరు విధులు.
వారు విభిన్న రకాల పద్ధతులను తీసుకుంటారని, వాళ్ళందరూ మూడు వాదనలు తీసుకుంటారని, ఎందుకంటే సంభావ్యంగా వారు a మరియు b మాట్రిక్స్( matrices) తీసుకొని గుణించడం మరియు ఫలితాన్ని c' ఇవ్వడం జరుగుతుంది.
కానీ ఈ అన్ని వేర్వేరు రకాలు ఎందుకంటే, నేను ఈ ఫంక్షన్ ఇచ్చిన వేర్వేరు పేర్లు కలిగి ఉండాలి మరియు నేను ఉపయోగిస్తున్నప్పుడు, నేను మాత్రమే నేను ప్రయాణిస్తున్న ఏమి వివిధ పారామితులు(parameters) అర్థం కానీ అంటే rv ఒక వరుస వెక్టర్ m2 'ఒక మాట్రిక్స్( matrix).
కాబట్టి, నేను వరుసగా వెక్టర్ మరియు మ్యాట్రిక్స్ ను ఉపయోగిస్తానంటే, నా పేరు ఫంక్షన్ multiply_VR_M లేదా ఇలాంటిదే.
ఒక రో వెక్టార్( row vector) ద్వారా వరుస వెక్టర్ యొక్క గుణకారం చేస్తున్నట్లయితే, అప్పుడు ఫంక్షన్ యొక్క పేరు వేరొక ఉదా.
Multiply_VR_VC ఉండాలి.
కాబట్టి, మీరు ఈ పరిశీలనలను సంక్షిప్తం చేస్తే, మీరు అర్థం చేసుకునేది ఐదు మల్టిపులేషన్ ఫంక్షన్లు ( multiplication function) ఇక్కడ చూపించాము, అదే కార్యాచరణను భాగస్వామ్యం చేయండి.
అవి ఒకే అల్గారిథమ్ని( algorithm) కలిగి ఉంటాయి, కానీ వాటికి ఐదు వేర్వేరు వాదన రకాలు మరియు ఫలితాల రకాలు ఉన్నాయి మరియు పర్యవసానంగా సి వాటిని ఐదు వేర్వేరు ప్రత్యేక విధులుగా పరిగణిస్తుంది.
ఇప్పుడు, C ++ అదృష్టవశాత్తూ ఈ పరిస్థితికి ఒక సొగసైన పరిష్కారం ఉంది, అదే విధమైన కార్యాచరణను కలిగి ఉన్న వేర్వేరు విధులు అవి అదే అల్గోరిథంను ఉపయోగిస్తాయి లేదా అవి ఒకే అల్గోరిథం యొక్క కొద్దిగా భిన్నమైన వైవిధ్యాలను ఉపయోగిస్తాయి, కానీ ఖచ్చితంగా వివిధ రకాలైన డేటా టైప్స్( data types) వాదన ఇప్పుడు వారి ఫంక్షన్ పేరు భాగస్వామ్యం మరియు మొత్తం ప్రోగ్రామింగ్ ( programming) వ్యాయామం చాలా సులభం చేయవచ్చు.
కాబట్టి, ప్రారంభించండి, అదే ఉదాహరణతో కొనసాగుతుంది, ఇప్పుడు ఇది మళ్ళీ C ++ లో కోడ్ చేయబడింది.
కేవలం ప్రధాన తేడాలు చూడండి.
మొదటి మీరు టైప్డేఫ్( typedef) త చేసినపుడు చూస్తే, అవి ఒకేలా ఉంటాయి.
మేము అదే రకాలు వ్యవహరిస్తున్నాం.
మీరు ఐదు విధులను చూస్తే, మనము అదే ఐదు ఫంక్షన్లు కలిగివుండటం వలన, మొదటిది ఇప్పటికీ రెండు మాత్రికలను గుణించి, రెండవది ఒక మాత్రికను గుణించి, పోస్ట్ను ఒక కాలమ్ వెక్టర్తో( column vector) ఒక మ్యాట్రిక్స్ను గుణించి, కానీ మీరు పేర్లను పరిశీలిస్తే, మీరు చాలా భిన్నమైనదాన్ని చూస్తారు.
మీరు వాటిని ఒకే పేరు కలిగి ఉన్నారని మీరు చూడవచ్చు, మీరు C లో చేయలేకపోతున్నారని, మేము ఆ ఫంక్షన్ పేర్లను ప్రపంచంగా చెప్పాము.
ఇవి గ్లోబల్ చిహ్నాలు( global symbols) .
కాబట్టి, C ప్రోగ్రామ్ యొక్క మొత్తంలో, మీరు వ్రాసే మరియు ఎన్ని ఫైళ్ళతో( files) సంబంధం లేకుండా, ఒక ప్రోగ్రామ్కు ఒక ప్రదేశంలో ఒక యూనిట్ వలె అమలు చేసే ప్రోగ్రామ్ మొత్తంలో, ప్రతి ఫంక్షన్ పేరు వేరుగా ఉంటుంది, ఫంక్షన్ పేరు.
మీరు ఒక్కో ఫంక్షన్ పేరు కోసం ఒక్కో ఫంక్షన్ పేరుని వ్రాయవచ్చు, కానీ ఇక్కడ మీరు ఐదు వేర్వేరు ఫంక్షన్లను ఒకే పేరుతో పంచుకున్నారని మీరు చూడవచ్చు, కాని కోర్సులో మీరు ఇక్కడ ఉన్నటువంటి వాటి పారామీటర్లను( parameters) చూస్తే, వాటిలో ఏ రెండు పారామితులను కలిగి ఉన్నాయని మీరు కనుగొంటారు.
వారు నిజంగా అవసరం లేదు, ఎందుకంటే మొదటి గుణాన్ని వేరుచేస్తుంది, ఇది రెండు మాత్రికలను (two matrices) గుణించి, మరొక చతురస్ర మాత్రిక ద్వారా ఇవ్వబడుతుంది, ఇది ఒక మాడ్రిక్స్ను ఒక కాలమ్ వెక్టర్తో ఒక మాత్రికను వెక్టర్తో పెంచడం లేదా మూడవది అడ్డు వరుస వెక్టర్ కలిగిన మ్యాట్రిక్స్ రో వెక్టర్( row vector) ఇవ్వడం.
వాటిలో అన్నిటికీ విభిన్నమైనవి, వాదనలు కోసం వారి సంబంధిత విభిన్న డేటా టైప్స్ ( data types) అర్గుమెంట్స్( arguments).
ఇప్పుడు మనము చేసిన చిన్న విషయం మాడ్యూల్ 6 మరియు 7 లో మనము పెద్ద ఆబ్జెక్ట్లలో కాల్ బై రిఫరెన్స్ (call by reference) మెట్రిసిస్ ద్వారా కాల్ ను ఉపయోగించామని నేర్చుకున్నాము.
కాబట్టి, మీరు వాటిని విలువగా మరియు వాటిని కాపీ చేయకూడదనుకుంటున్నాము, మనం వాటిని సూచనగా పాస్ చేయాలనుకుంటున్నాము మరియు ఇన్పుట్ మాత్రికలు (input matrices) లేదా వెక్టర్స్ ఫంక్షన్లో నిశితంగా లేదని నిర్ధారించుకోవాలి.
మేము ఆ పారామితులను నిరంతరం చేస్తాము, అవుట్పుట్( output) వైపున మేము కేవలం సూచన విధానాల ద్వారా కేవలం కాల్ని ఉపయోగిస్తాము, తద్వారా మనకు పరోక్ష పాయింటర్ ( pointer) భాగం అవసరం లేదు, అయితే ఇది కేవలం ఐదు పాయింట్లు అదే పేరు మరియు ఈ ఐదు వాటిని అదే పేరుతో సంబంధిత ఆక్చువల్ పారామితులు( actual parameters) ద్వారా ఉపయోగించవచ్చు.
కాబట్టి, ఏమి జరుగుతుందో నేను ఒక మాత్రిక యొక్క పోస్ట్ గుణకారం కాలమ్ వెక్టర్తో ( column vector) చేయటానికి ప్రయత్నిస్తాను అనుకుందాం, కాబట్టి నేను ఒక matrixm1 'ను కలిగి ఉన్నాను, నేను ఒక కాలమ్ వెక్టర్cv ను కలిగి ఉన్నాను మరియు నేను వాటిని గుణించి ఉంటే, నేను ఏమి పొందాలి? నేను ఒక కాలమ్ వెక్టార్ కావాలి.
కాబట్టి, ఫలితంగా నేను కాలమ్ వెక్టార్rcv 'ను ఊహించాను.
కాబట్టి నేను చెప్పేదేమిటంటే, నేను గుణించాలి; నేను m1 ను మ్యాట్రిక్స్గా, cv' ని కాలమ్ వెక్టర్గా మరియు rcv ను నా ఫలితం మాత్రికగా( result matrix) ఉంచాను.
ఇప్పుడు, ఏదో ఒకవిధంగా నేను దీనిని చేస్తే మరియు నేను ఆ ప్రత్యేక ఫంక్షన్ను సరిగ్గా పిలుస్తాను; పోస్ట్ ఒక చదరపు మాత్రికను నిలువు వెక్టర్తో గుణిస్తుంది.
కాబట్టి, ఈ ఫంక్షన్లలో మీరు ఈ పారామితులను పేర్కొనడం చాలా ఆసక్తికరంగా, అప్పుడు ఆసక్తికరంగా ఇది వాస్తవానికి ఈ ఫంక్షన్ అని పిలుస్తుంది.
అయినా ఐదు విధులు ఉన్నాయి, వాటిలో అన్ని గుణించాలి మరియు నేను ఈ ఫంక్షన్ను కూడా గుణిస్తున్నట్లు పిలుస్తాను, కానీ ఏదో విధంగా, పారామితులను నేను అర్థం చేసుకోగలుగుతాను.
ఈ పారామితుల యొక్క రకాలు, ఈ పరామితి యొక్క రకము ఇక్కడ సరిపోతుంది, ఇక్కడ రెండవ పరామితి యొక్క రకం పారామితిcv 'is' VecCol ', ఇది ఇక్కడ సరిపోతుంది మరియు మూడవ పారామితి rcv రకం' VecCol ' ఇక్కడ సరిపోతుంది.
మనము ఈ 5 పారామితులు తమ టైప్లో సరిపోలుతున్నాము మరియు కంపైలర్ ( compiler)ఈ ప్రత్యేక ప్రవేశానికి చెందిన రెండవ ఫంక్షన్కు కాల్ చేయగలదు అని మేము కనుగొన్నాము.
అదేవిధంగా, నేను ఈ పరిశీలిస్తే, ఈ 3 పారామితుల రకాన్ని బట్టి, కంపైలర్ నిజానికి ఈ ఫంక్షన్కు కాల్ చేయవచ్చు, ఎందుకంటే rv is VecRow , rcv' is 'VecCol' మరియు r .
rv ',cv,r ',` vecRow', 'VecCol', int మాత్రమే ప్రత్యేకంగా చివరి పని అని పిలుస్తారు ఇది పని చేస్తుంది.
కాబట్టి, ఈ 5 ఫంక్షన్స్ విభిన్న ఆర్గ్యుమెంట్ రకాలను (argument types) కలిగి ఉంటాయి, కాని అవి C ++ లో ఒక సాధారణ పేరు కలిగిన ఒక ఫంక్షన్గా వ్యవహరిస్తారు మరియు ఈ లక్షణం చాలా శక్తివంతమైనది మరియు ఇది చాలా విషయాలు చేయడాన్ని మనం ఫంక్షన్ ఓవర్లోడింగ్( function overloading) లేదా అని నెమ్మదిగా ఒక ప్రత్యామ్నాయ పేరు అర్థం, ఇది మరింత ప్రామాణికమైన పేరు స్టాటిక్ పాలిమార్ఫిజం (static polymorphism).
సో, మేము ఫంక్షన్ ఓవర్లోడింగ్ సులభంగా ఉంటుంది ఎందుకు ప్రేరణ చూసింది.
మేము ఐదు వేర్వేరు ఫంక్షన్లకు ఐదు వేర్వేరు ఫంక్షన్లకు ఇచ్చాము, వారి ప్రధాన కార్యాచరణ, కోర్ అల్గోరిథం ఇంకా ఒకేలా ఉండటంతో మేము ఈ పరిస్థితిని గమనించాము మరియు ఈ పేర్లను స్పష్టంగా గుర్తుంచుకోవాలి, C ++ లో మనకు ఓవర్లోడింగ్ పేరు మరియు ఫంక్షన్ యొక్క మా కాల్ లేదా ఉపయోగం ఆధారంగా, సరైన ఫంక్షన్ అని మేము అని చూసిన ప్రత్యేక కాల్ కట్టుబడి ఉంటుంది.
కాబట్టి, ఇప్పుడు మనం ముందుకు వెళ్లి, వివిధ రకాల ఫంక్షన్లను C ++ లో ఎలా ఓవర్లోడింగ్ చేస్తామో చూద్దాం.
కాబట్టి, ఫంక్షన్ ఓవర్లోడింగ్ లో, మేము అదే పేరుతో ఉన్న బహుళ ఫంక్షన్లను నిర్వచిస్తాము ఎందుకంటే మీరు ఒకే పేరుతో ఒకటి కంటే ఎక్కువ ఫంక్షన్ కలిగి ఉంటే, ఓవర్లోడింగ్ (over loading) యొక్క సమస్య తలెత్తదు మరియు రెండవది బైండింగ్ (binding) జరుగుతుంది కంపైల్ రకం వద్ద.
బైండింగ్ ఫంక్షన్( binding function) కాల్ ఇచ్చిన ఒక అధికారిక పదం, మీరు ఏ నిర్దిష్ట ఫంక్షన్ నిజానికి పిలుస్తారు మరియు ఆ ప్రక్రియ బైండింగ్ అని పిలుస్తారు ఎలా నిర్ణయిస్తారు.
ఈ కంపైలర్ ఏమి ఉంది.
కాబట్టి, కంపైల్ సమయంలో బైండింగ్ అంటారు.
ఇప్పుడు మనము దీనిని పరిశీలిద్దాము.
రెండు నిలువు వరుసలలో, మనము ఇక్కడ రెండు వేర్వేరు రకాలైన సందర్భాలను చూపుతాము.
ఇక్కడ ఫంక్షన్ జోడించు యొక్క ఓవర్లోడింగ్ ను చూపుతుంది, ఇక్కడ మొదటి ఉదాహరణ, మీరు పారామితులపై ప్రత్యేకంగా దృష్టి సారిస్తారు.
జోడించు 'రెండు ఇంటిజర్ పారామితులను ( integer parameters)తీసుకుంటుంది మరియు రెండో సందర్భంలో ఇంటిజర్ను తిరిగి ఇస్తుంది, అది రెండు డబుల్ పారామీటర్లను ( double parameters)తీసుకుంటుంది మరియు డబుల్ను అందిస్తుంది.
కాబట్టి, మనము 'జోడించు' ఫంక్షన్ ను వ్రాయటానికి ప్రయత్నిస్తున్నాము, ఇది సంభావ్యంగా రెండు సంఖ్యలను జతచేయాలి, కానీ C లో అది C ++ లో కూడా ఉంటుంది, అది జోడించే సంఖ్యల ఇంట్ లేదా అవి డబుల్ లేదా అవి ఇంకేదో.
ఇప్పుడు, నేను ఈ రెండు ఫంక్షన్లను ఒకే కోడ్లో వ్రాయగలను మరియు తరువాత రెండు వేర్వేరు ప్రదేశాలలో నేను ఉపయోగిస్తున్నాను.
ఇక్కడ నేను x(y,y)ను జోడించు ఉపయోగిస్తున్నాను, ఇక్కడ x ఒక ఇంట్ మరియు y ఒక ఇంట్ .
కాబట్టి, ప్రధానంగా, నేను 'చేర్చు' కాల్ చేస్తున్నాను రెండు పారామితులు.
అందువల్ల, ఈ కాల్ రెండు పారామితుల కొరకు పనిచేస్తుంది అనగా యాడ్ యొక్క ఈ నిర్వచనానికి కట్టుబడి ఉంటుంది, అయితే మీరు టైప్ డబుల్( type double)యొక్క s మరియు t 'ను ఉపయోగించే యాడ్ ఫంక్షన్( add function) యొక్క రెండవ కాల్ని పరిశీలిస్తే, మా పరామితి రకాలు డబుల్( parameter types double) మరియు డబుల్ కంపైలర్ ( double compiler)ఈ కాల్ వాస్తవానికి జోడింపు ఫంక్షన్ యొక్క రెండవ నిర్వచనం కోసం అని గుర్తించడానికి మరియు అక్కడ అది కట్టుబడి ఉంటుంది.
దీని ప్రకారం, మొదటిది సంకలనం 11 ను ముద్రిస్తుంది మరియు రెండవ కాల్ మొత్తం 7.
75 ను ముద్రిస్తుంది.
మనము అన్ని రకాల డేటాను ఉపయోగిస్తున్నామనేది మనకు తెలుసు కాబట్టి మీరు ఏ విధమైన డేటాను ఉపయోగిస్తున్నారంటే ఎందుకంటే నేను రెండు ఇంటిజర్లను జోడించాను, నేను ఒక విధమైన అదనంగా ఉన్నాను.
నేను రెండు డబుల్స్ని జోడించాను, నాకు వేరే రకమైన అదనంగా ఉంటుంది.
కాబట్టి, ఈ భాగంలో మనము రెండు సందర్భాలలో 'యాడ్' అనే పారామితులను కలిగి ఉన్న పారామితుల సంఖ్య, కానీ పారామితుల యొక్క రకాలు భిన్నంగా ఉంటాయి మరియు దాని ఆధారంగా మేము ఒక ప్రత్యేక కాల్ మాట్లాడుతున్నాము గురించి, కాల్ నుండి, ఓవర్లోడ్ చేసిన వేరే ప్రత్యామ్నాయాల యొక్క నిర్దిష్ట ఫంక్షన్ వాస్తవానికి ప్రయోగించాల్సిన అవసరం ఉంది, వాస్తవానికి కట్టుబడి ఉండాలి.
ఇప్పుడు, ఓవర్లోడింగ్ కోసం ఇది అవసరం లేదు.
ఇప్పటివరకు, మనము ఐదు మల్టిపుల్ ఫంక్షన్లు( multiple function) లేదా ఇక్కడ ఫంక్షన్లను జతచేసిన అన్ని ఉదాహరణలు, అన్ని సందర్భాలలో పరామితుల సంఖ్య ఒకే విధంగా ఉంటుంది, కానీ ఫంక్షన్ ఓవర్లోడింగ్( function overloading) కోసం ఇది తప్పనిసరి కాదు.
సో, కుడి కాలమ్ చూడండి.
తదుపరి ఉదాహరణ, ఇక్కడ మేము రెండు విధులు ఏరియా చూపుతాము.
మొదటిది ఒక దీర్ఘ చతురస్రం యొక్క ప్రాంతాన్ని లెక్కించడానికి ఉద్దేశించబడింది.
కాబట్టి, అది వెడల్పు మరియు ఎత్తు యొక్క రెండు పారామితులను తీసుకోవాలి, వాటిని గుణించాలి మరియు వ్రాసినప్పుడు, రెండోది ఒక పరామితిని మాత్రమే తీసుకుంటుంది, ఎందుకంటే అది ఒక చదరపు ప్రదేశంను లెక్కించవలసి ఉంటుంది, కాబట్టి మీరు ఆ సంఖ్య మరియు చతురస్రాలు ఆ సంఖ్య మరియు వ్రాసినది.
కాబట్టి, ఈ రెండు విధులు మధ్య, పేరు అదే ఉంది.
దీనికి రెండు పారామీటర్లను కలిగి ఉంది, దీనికి ఒక పరామితి ఉంది మరియు మేము 'Area(x,y)అని పిలిచినట్లయితే మనం ఈ పనితో ఇంకా పనిచేయగలము అని క్రింద చూద్దాం, అప్పుడు ఒక ఫంక్షన్ ఉందని మాకు తెలుసు.
ఈ ఫంక్షన్లో ఒకటి, ఈ రెండు పారామీటర్లను కలిగి ఉంది, పారామితి ఇక్కడ x గా ఉంది, పారామీటర్ Y కూడా Int.
కాబట్టి, ఇది (Int,Int) కాల్.
కాబట్టి, రెండు పారామితులు( two parameters), టు ఇంటిజర్స్( two integers) ఉండాలి.
వారు నిజంగా ఇక్కడ పూర్ణ సంఖ్య.
కాబట్టి, ఈ కాల్ వాస్తవానికి మొదటి ప్రాంతం ఫంక్షన్ను ఇన్వోక్ చేస్తుంది.
దీనికి విరుద్ధంగా మేము రెండవ కాల్ని పరిశీలిస్తే, ఒక పారామితి z ఉంది, ఇది రకం Int.
ఇది ఒక పరామితి కలిగిన రెండో ఏరియా ఫంక్షన్కు కట్టుబడి ఉంటుంది.
కాబట్టి, వేర్వేరు విధులు ఓవర్లోడ్ చేయబడినవి, పారామితుల యొక్క వేర్వేరు సంఖ్యలో ఉన్నప్పుడు కూడా పిలువబడతాయి.
పరామితుల సంఖ్య భిన్నంగా ఉన్నప్పటికీ గమనించండి, ఇక్కడ మొదటి పరామితి పరంగా, రకం అదే ఉంది.
మునుపటి సందర్భాలలో, మునుపటి సందర్భాలలో అదే పారామితుల సంఖ్య.
వివిధ రకాలుగా మీరు క్లూను మీకు ఇచ్చే హక్కును కాల్ చేస్తున్నప్పుడు, ఇక్కడ రకం అతివ్యాప్తి అయినప్పటికీ సంఖ్యలు భిన్నంగా ఉంటాయి.
మీరు ఇంకా సరైన పరిష్కారం కోసం సరైన కార్యాచరణను బంధించగలిగారు, ఇప్పటికీ పరిష్కరించగలుగుతారు.
సో, మీరు ఫంక్షన్ ఓవర్లోడింగ్ గురించి మాట్లాడేటప్పుడు, మనం ప్రాథమికంగా మాట్లాడతాము, అక్కడ ఒకటి కంటే ఎక్కువ ఫంక్షన్లు వుంటాయి మరియు ఈ విధులు కొంతవరకు వాటి కార్యాచరణలో ఉంటాయి.
ఇప్పుడు, మీరు ఫంక్షన్తో స్క్వేర్ రూట్ చేయడానికి పది సంఖ్యలను క్రమం చేయడానికి ఫంక్షన్ను ఓవర్లోడ్ చేయలేరు.
నేను మీరు వాటిని ఎల్లప్పుడూ పిలవగలరు; నేను నా పేరును myfunc మరియు myfunc అనే ఓవర్లోడ్(overload) చేస్తాను, పారామీటర్ డబుల్ ఉంటే, అప్పుడు అది చదరపు రూటును కనుగొంటుంది మరియుmyfunc 'కి పరామితి ఉంటే అది క్రమం చేస్తుంది.
ఇది ఓవర్లోడింగ్ నియమావళికి అనుగుణంగా పనిచేస్తుంది, మీరు దీన్ని చేయగలుగుతారు, కానీ ఖచ్చితంగా ఇది ఈ లక్షణం యొక్క విపత్తు ఉపయోగంగా ఉంటుంది.
కాబట్టి, మేము ఓవర్లోడ్ చేస్తే ప్రాథమిక భావనీకరణ అనేది అన్ని ఓవర్లోడ్ చేయబడిన ఫంక్షన్లు చాలా సంబంధిత కార్యాచరణను కలిగి ఉండాలి.
వారు చాలా పోలి అల్గోరిథంలు( algorithms) గురించి మాట్లాడటం ఉండాలి, కానీ వారు ఉపయోగించే పారామితుల యొక్క రకాలు, గణన చేయడం కోసం వారు ఉపయోగించే పారామితుల యొక్క సంఖ్య వేరుగా ఉంటుంది, తద్వారా నేను ఈ విధమైన అన్ని పనులకు ఇదే ఇవ్వగలదు మరియు C ++ లో పనిచేసే పనితీరు ఓవర్లోడ్ చేయాల్సిన విధానం ఫంక్షన్ ఓవర్లోడింగ్( function overloading) పరంగా కొన్ని పరిమితులు ఉన్నాయి.
ఫంక్షన్ ఓవర్లోడింగ్ ప్రాధమికంగా ఫంక్షన్ యొక్క సంతకంపై ఆధారపడి నిర్ణయించబడింది, ప్రతి సందర్భంలో మేము, సి లో, మీరు రెండు విధుల మధ్య ఎలా పరిష్కరించాలో, మేము మాట్లాడుతున్నాము.
వారు వివిధ పేర్లు, వేర్వేరు విధులు కలిగి ఉండాలి.
C ++ లో, రెండు విధులు లేదా రెండు కంటే ఎక్కువ విధులు ఒకే పేరును కలిగి ఉంటాయి.
ఎలా మీరు పరిష్కరించాలి? మేము అనేక ఉదాహరణలు చూసిన పరామితుల రకాలను బట్టి, పారామితుల సంఖ్య ఆధారంగా వారి సంతకాల ఆధారంగా మీరు పరిష్కరించాలి.
ఇప్పుడు, ప్రశ్న, నేను కలిగి రెండు విధులు ఉంటే; ఇక్కడ మనము ఈ ప్రత్యేక కేసుని చెక్ చేద్దాము, నాకు రెండు విధులు ఉన్నాయి.
మరోవైపు, రెండూ ఒకే పారామితుల సంఖ్యను ఉపయోగిస్తాయి, వాటిలో రెండూ ఒకే విధమైన పారామితులను (int,int)మరియు(int,int) మరియు వాటి పూర్ణాంకాలకు భిన్నంగా ఉంటాయి.
ఇప్పుడు, ఇటువంటి రకమైన విధులు కలిసి ఉపయోగించలేరని దయచేసి గమనించండి.
ఫంక్షన్ ఓవర్లోడింగ్ ( function overloading)పరంగా ఇది సాధ్యం కాదు.
కాబట్టి, బహుశా ఇది ఇక్కడ చూపించబడింది, ఇది ఒక కంపైలర్ నుండి ఒక సాధారణ ఎర్రర్( error)సందేశం, ఇది ఇక్కడ చెప్పబడుతుందని మీకు చూపిస్తుంది, ఇది మొదటి చర్యను సరే, మీరు ప్రయత్నిస్తున్నప్పుడు రెండవ ఫంక్షన్ను కంపైల్ చేయడానికి ప్రయత్నించినప్పుడు , అది రెండవ డ్యూటీ టైప్ గురించి మాట్లాడటం ఎందుకు అంటే ఇది ఓవర్లోడ్ అయిన ఫంక్షన్ తిరిగి టైప్ చేస్తే భిన్నంగా ఉంటుంది.
ఇది తిరిగి టైప్ ద్వారా మాత్రమే భిన్నంగా ఉంటుంది మరియు అది అనుమతించబడదు మరియు అందుకే ఈ పునర్నిర్వహణగా పరిగణించబడుతున్నాయి, మీరు ఈ ఫంక్షన్ని మీరు ఇదే విధమైన సంస్కరణను పునర్నిర్వచించటం ఉంటే మీరు ఈ ఉదాహరణను C.
ఇదే విధమైన ఎర్రర్ సందేశాన్ని కూడా కనుగొంటుంది ఎందుకంటే ఇది ఒక పునర్నిర్వచనా సందేశం.
మొదటి సందేశము ఏమిటంటే ఫంక్షన్ ఓవర్లోడింగ్ పాయింట్ దృక్పథం నుండి విలక్షణమైనది మీరు రెండు పారామీటర్ల సంఖ్యను భిన్నంగా లేదా పరామితుల సంఖ్యను కొనసాగించకపోయినా, రెండు విధులు ఓవర్లోడ్ చేయలేవు, కానీ ఇప్పటికీ వాటి సంతకాలు ఉంటే పరామితుల యొక్క రకాలు కనీసం విభిన్నంగా ఉంటాయి రిటర్న్ టైప్ (return rype )లో కేవలం భిన్నంగా ఉంటాయి, అప్పుడు ఓవర్లోడింగ్ అనుమతించబడదు.
కాబట్టి, మీరు ఈ పరిమితిని మీరు వ్యవహరించేటప్పుడు గుర్తుంచుకోండి, మీరు ఓవర్లోడ్ చేయబడిన విధులను వ్రాసేటప్పుడు.
ఫంక్షన్ ఓవర్లోడింగ్ కొరకు మనకు ఉన్న నియమాల పరంగా మొత్తమ్మీద అదే ఫంక్షన్ పేరు అనేక నిర్వచనాలలో ఉపయోగించబడుతుందని చెప్పబడుతుంది.
ఇది ప్రాథమిక ఓవర్లోడింగ్ భావన.
అదే పేరుతో ఉన్న ఫంక్షన్ అధికారిక పారామితులు మరియు / లేదా రెండు రకాల ఉదాహరణలుగా ఉండే మాదిరి పారామితులను వేర్వేరు రకాలను కలిగి ఉండాలి.
ఫంక్షన్ ఎంపిక అసలు పారామితుల యొక్క సంఖ్య మరియు రకాలు మీద ఆధారపడి ఉంటుంది.
మేము ఇక్కడ కూడా ఉదాహరణలు చూశాము.
అప్పుడు, కంపైలర్ చేత చేయబడిన ఈ ఫంక్షన్ ఎంపిక ఓవర్లోడ్ స్పష్టత అంటారు.
దీని అర్థం, మీరు బహుళ విధులు ఓవర్లోడ్ చేయబడ్డారు.
అదే పేరుతో బహుళ విధులు మరియు మీకు ఒక కాల్ సైట్ ఇవ్వబడుతుంది; మీరు ఈ బహుళ అభ్యర్థులలో ఏది ఉపయోగించాలో గుర్తించడానికి ప్రయత్నిస్తున్న ఒక కాల్కి మీరు ఇస్తారు.
ఆ ప్రక్రియ ఓవర్లోడింగ్ కోసం తీర్మానం ప్రక్రియ అని పిలువబడుతుంది, C ++ కంపైలర్ నిర్వహిస్తుంది మరియు ఓవర్ టైం, ఇది నిజానికి చాలా సంక్లిష్టమైన ప్రక్రియ మరియు చాలా శక్తివంతమైన ప్రక్రియ అని మీరు అర్థం చేసుకుంటారు మరియు ఆ ప్రక్రియ ద్వారా కంపైలర్ మీరు ఉపయోగించబోయే ఓవర్లోడ్ వెర్షన్లు లేదా మీరు కాల్ సైట్లో ఉపయోగించడానికి ఉద్దేశించి, కంపైలర్ అలా అనిపిస్తే.
రెండు విధులు ఒకే సంతకం అయితే వివిధ తిరిగి రకాలు లేదా కొన్ని ఇతర కారణాల వలన పరామితి రకాలు భిన్నంగా ఉంటాయి, కానీ కంపైలర్ పరిష్కరించడానికి సరిపోదు.
కంపైలర్ అలా చేయలేకపోతే, కంపైలర్ మీరు తిరిగి ప్రకటించాలని ప్రయత్నిస్తున్నప్పుడు లేదా నేను అయోమయం చెపుతున్నానని చెప్తాను మరియు అస్పష్టత ఉందని మరియు అలాంటి సందర్భాలలో, మీరు వేరొక ఫంక్షన్ ఓవర్లోడింగ్ పని చేయడానికి లేదా ఫంక్షన్ ఓవర్లోడింగ్ నివారించడానికి మరియు వేరొక రూపంలో కోడ్ రాయడానికి.
ఓవర్లోడింగ్ అనేది ఒక రూపంలో మీకు స్టాటిక్ పాలిమార్ఫిజం( static polymorphism) ఇస్తుంది.
మేము వెంటనే స్టాటిక్ పాలిమార్ఫిజం యొక్క తీవ్రస్థాయిలోకి వెళ్ళడం లేదు.
వివిధ పూర్ణ C ++ లక్షణాల సందర్భంలో పాలిమార్ఫిజం గురించి మాట్లాడతాము.
ఇక్కడ కోర్ లక్షణాలు నేను రెండు పదాలను వివరించాలనుకుంటున్నాను.
పాలిమార్ఫిజం అర్థం, పాలీ అంటే- అనేక మరియు మార్ఫ్ అంటే- మార్చడానికి.
సో, పాలిమార్ఫిజం బహుళ మార్పులను లేదా బహుళ రూపాలను ఒకటిగా చేస్తోంది.
కాబట్టి, ఇక్కడ పాలిమార్ఫిజం అనగా పేరుతో అదే ఫంక్షన్ అంటే, పారామితి రకం, వేర్వేరు ప్రవర్తన, వివిధ అల్గోరిథంలు( algorithms) మరియు వివిధ ఇంటర్ఫేస్ల మీద ఆధారపడి ఉంటుంది.
కాబట్టి, మీరు ప్రాథమికంగా ఈ బహుళ రూపంపై నిర్ణయిస్తారు మరియు మీరు ఈ స్థిరమైనదని చెప్తారు.
ఏ స్టాటిక్ ఇక్కడ మీరు అన్ని కంపైలర్ సమయం లో చేయాలనుకుంటున్నారని అంటే ఈ కంపైలర్ ఈ బహుళ రూపాల మధ్య నిర్ణయించుకోవాలి మరియు ఈ ఫంక్షన్ కాల్ వద్ద మీరు ఉపయోగించడానికి ప్రయత్నిస్తున్న వేర్వేరు రూపాలు, పాలిమార్ఫిక్ రూపాల్లో ఏది ఖచ్చితంగా చెప్పగలరా.
కాబట్టి, ఈ రకమైన నిర్ణయం లేదా ఓవర్లోడ్ మెకానిజంను కలిపి స్టాటిక్ పాలిమార్ఫిజం అని పిలుస్తారు.
వాస్తవానికి, ఇతర రకాల పాలిమార్ఫిజం కూడా సాధారణంగా డైనమిక్ లేదా రన్ పాలిమార్ఫిజం అని పిలువబడుతున్నాయి, మేము C ++ భాషలోని ఆబ్జెక్ట్( object) బేస్ భాగం గురించి చర్చిస్తున్నప్పుడు చర్చించబోతున్నాం.
కాబట్టి, అన్ని డిఫాల్ట్లను వాడాలి; మీరు ఈ వంటి ఏదో చేయాలని ఉంటే వాటిని అన్ని శీర్షిక ఫైళ్ళకు తరలించబడింది చేయాలి కాబట్టి ఒక సమయంలో మీరు డిఫాల్ట్ పారామితులు ఉన్నాయి ఏమి చూడగలరు మరియు వారి విలువలు ఏమిటి, లేకపోతే ఈ పద్దతి యొక్క ఈ విధానం డిఫాల్ట్ పారామితులు కోడ్ వ్రాయడం నిజంగా చాలా గందరగోళంగా పొందండి.
కాబట్టి, అన్ని డిఫాల్ట్లను వాడాలి; మీరు ఈ వంటి ఏదో చేయాలని ఉంటే వాటిని అన్ని శీర్షిక ఫైళ్ళకు తరలించబడింది చేయాలి కాబట్టి ఒక సమయంలో మీరు డిఫాల్ట్ పారామితులు ఉన్నాయి ఏమి చూడగలరు మరియు వారి విలువలు ఏమిటి, లేకపోతే ఈ పద్దతి యొక్క ఈ విధానం డిఫాల్ట్ పారామితులు కోడ్ వ్రాయడం నిజంగా చాలా గందరగోళంగా పొందండి.
ఇది ఆచరణాత్మక పాయింట్ నుండి ఒక పరిమితిగా ఉంటుంది, మీరు భాషా చివరికి చూస్తే, మీరు ఈ నిర్వచనాలతో మీరు నిజంగానే నాలుగు వేర్వేరు రూపాలతో ఫంక్షన్ గ్రానికే పిలుస్తారని నేను చూపించినట్లు చూపించాయి ఎందుకంటే మూడు పారామితులు చివరికి అప్రమేయం చేయబడ్డాయి, కానీ ఒకే స్థలంలో వాటిని ఎల్లప్పుడూ అప్రమత్తంగా ఉండేలా చేస్తాయి, తద్వారా ఒకే సంతకం లో వాటిని మూడు వేర్వేరు సంతకాలలో వరుసగా మూడుసార్లు వేరు చేయటానికి బదులు వాటిని ఉపయోగించడం కోసం చాలా గందరగోళంగా మారుతుంది.
ఇది ఆచరణాత్మక పాయింట్ నుండి ఒక పరిమితిగా ఉంటుంది, మీరు భాషా చివరికి చూస్తే, మీరు ఈ నిర్వచనాలతో మీరు నిజంగానే నాలుగు వేర్వేరు రూపాలతో ఫంక్షన్ గ్రానికే పిలుస్తారని నేను చూపించినట్లు చూపించాయి ఎందుకంటే మూడు పారామితులు చివరికి అప్రమేయం చేయబడ్డాయి, కానీ ఒకే స్థలంలో వాటిని ఎల్లప్పుడూ అప్రమత్తంగా ఉండేలా చేస్తాయి, తద్వారా ఒకే సంతకం లో వాటిని మూడు వేర్వేరు సంతకాలలో వరుసగా మూడుసార్లు వేరు చేయటానికి బదులు వాటిని ఉపయోగించడం కోసం చాలా గందరగోళంగా మారుతుంది.
కాబట్టి, C ++ యొక్క డిఫాల్ట్ పారామితుల( default parameter) లక్షణాన్ని మేము చూశాము మరియు దానిని ఎలా ఉపయోగించాలో మరియు మేము ఉపయోగించే పరిమితులు ఏమిటి?
కాబట్టి, C ++ యొక్క డిఫాల్ట్ పారామితుల( default parameter) లక్షణాన్ని మేము చూశాము మరియు దానిని ఎలా ఉపయోగించాలో మరియు మేము ఉపయోగించే పరిమితులు ఏమిటి?
ఇది వర్చువల్ కానిది అయితే, ఇది స్టాటిక్ బైండింగ్ను ఉపయోగిస్తుంది; ఇది వర్చువల్ అయితే, ఇది డైనమిక్ బైండింగ్ కోసం కోడ్ను సృష్టిస్తుంది, తద్వారా రన్ టైమ్లో ఉపయోగించబడే వాస్తవ రకాన్ని బట్టి బైండింగ్ నిర్ణయించబడుతుంది.
ఇది వర్చువల్ కానిది అయితే, ఇది స్టాటిక్ బైండింగ్ను ఉపయోగిస్తుంది; ఇది వర్చువల్ అయితే, ఇది డైనమిక్ బైండింగ్ కోసం కోడ్ను సృష్టిస్తుంది, తద్వారా రన్ టైమ్లో ఉపయోగించబడే వాస్తవ రకాన్ని బట్టి బైండింగ్ నిర్ణయించబడుతుంది.
సంక్షిప్తంగా, మేము స్టాటిక్ మరియు డైనమిక్ బైండింగ్ గురించి లోతుగా చూశాము మరియు పాలిమార్ఫిక్ అర్థం చేసుకోవడానికి ప్రయత్నించాము.
సంక్షిప్తంగా, మేము స్టాటిక్ మరియు డైనమిక్ బైండింగ్ గురించి లోతుగా చూశాము మరియు పాలిమార్ఫిక్ అర్థం చేసుకోవడానికి ప్రయత్నించాము.
మరియు తరువాతి మాడ్యూల్లో, పాలిమార్ఫిక్ రకాలతో తలెత్తే వివిధ నిర్దిష్ట సమస్యలపై మా చర్చను కొనసాగిస్తాము.
మరియు తరువాతి మాడ్యూల్లో, పాలిమార్ఫిక్ రకాలతో తలెత్తే వివిధ నిర్దిష్ట సమస్యలపై మా చర్చను కొనసాగిస్తాము.
అప్పుడు మీరు C ++ లోకి వెళ్ళండి మరియు దీనిలో మేము పరిష్కారం యొక్క మూడు దశలను చూపించాము - మొదట, పాలిమార్ఫిక్ కాని సోపానక్రమంతో; అప్పుడు, పాలిమార్ఫిక్ సోపానక్రమంతో; ఆపై నైరూప్య బేస్ క్లాస్తో మల్టీకలర్డ్ సోపానక్రమంతో.
అప్పుడు మీరు C ++ లోకి వెళ్ళండి మరియు దీనిలో మేము పరిష్కారం యొక్క మూడు దశలను చూపించాము - మొదట, పాలిమార్ఫిక్ కాని సోపానక్రమంతో; అప్పుడు, పాలిమార్ఫిక్ సోపానక్రమంతో; ఆపై నైరూప్య బేస్ క్లాస్తో మల్టీకలర్డ్ సోపానక్రమంతో.
భవిష్యత్తులో మరిన్ని డిజైన్ చేయగలిగే పరంగా మీకు చాలా బలం వస్తుందని నేను ఆశిస్తున్నాను.
భవిష్యత్తులో మరిన్ని డిజైన్ చేయగలిగే పరంగా మీకు చాలా బలం వస్తుందని నేను ఆశిస్తున్నాను.
తరువాతి మాడ్యూల్ మరియు రెండింటిలో, పాలిమార్ఫిజం, డైనమిక్ బైండింగ్, వాస్తవానికి ఇది ఎలా పనిచేస్తుంది, ఆపై C + పరంగా మనం సూచిస్తున్న అన్నిటిని క్లుప్తంగా పరిశీలిస్తాము. C++ యొక్క ఇతర లక్షణాలతో కొనసాగుతుంది.
తరువాతి మాడ్యూల్ మరియు రెండింటిలో, పాలిమార్ఫిజం, డైనమిక్ బైండింగ్, వాస్తవానికి ఇది ఎలా పనిచేస్తుంది, ఆపై C + పరంగా మనం సూచిస్తున్న అన్నిటిని క్లుప్తంగా పరిశీలిస్తాము. C++ యొక్క ఇతర లక్షణాలతో కొనసాగుతుంది.
కాబట్టి, ముగియడానికి, మేము ఎందుకు డిస్ట్రక్టర్స్ వర్చువల్ గా ఉండాలి గురించి చర్చించారు.
కాబట్టి, ముగియడానికి, మేము ఎందుకు డిస్ట్రక్టర్స్ వర్చువల్ గా ఉండాలి గురించి చర్చించారు.
మరియు పాలిమార్ఫిక్ హైరార్కీ పని చేయగలగడానికి, మేము ప్యూర్ వర్చువల్ ఫంక్షన్లను పరిచయం చేసాము మరియు అబ్స్ట్రాక్ట్ బేస్ క్లాస్ భావనను ప్రవేశపెట్టింది.
మరియు పాలిమార్ఫిక్ హైరార్కీ పని చేయగలగడానికి, మేము ప్యూర్ వర్చువల్ ఫంక్షన్లను పరిచయం చేసాము మరియు అబ్స్ట్రాక్ట్ బేస్ క్లాస్ భావనను ప్రవేశపెట్టింది.
తదుపరి మాడ్యూల్లో, క్లాస్ హైరార్కీ పై కొన్ని డిజైన్ మరియు కోడ్ ప్రాసెసింగ్ను వాస్తవంగా చేయడానికి ఈ టూల్స్ ను ఎలా ఉపయోగించవచ్చో చూపించడానికి మేము మరిన్ని ఉదాహరణలను తీసుకుంటాము.
తదుపరి మాడ్యూల్లో, క్లాస్ హైరార్కీ పై కొన్ని డిజైన్ మరియు కోడ్ ప్రాసెసింగ్ను వాస్తవంగా చేయడానికి ఈ టూల్స్ ను ఎలా ఉపయోగించవచ్చో చూపించడానికి మేము మరిన్ని ఉదాహరణలను తీసుకుంటాము.
మేము దీన్ని చేసాము, ఎందుకంటే తరువాతి మాడ్యూల్లో, కాస్టింగ్ యొక్క ఈ భావనను బైండింగ్ సందర్భంలో ఉపయోగించాల్సి ఉంటుంది.
మేము దీన్ని చేసాము, ఎందుకంటే తరువాతి మాడ్యూల్లో, కాస్టింగ్ యొక్క ఈ భావనను బైండింగ్ సందర్భంలో ఉపయోగించాల్సి ఉంటుంది.
ఆ తరువాత మేము స్టాటిక్ కాస్టింగ్ మరియు డైనమిక్ కాస్టింగ్ లేదా వర్చువల్ ఫంక్షన్ యొక్క ప్రాథమిక నిర్వచనాన్ని ప్రవేశపెట్టాము, ఇది కొత్త రకం సభ్యుల ఫంక్షన్, ఇది మేము మరిన్ని తరగతులలో ప్రదర్శిస్తున్నాము.
ఆ తరువాత మేము స్టాటిక్ కాస్టింగ్ మరియు డైనమిక్ కాస్టింగ్ లేదా వర్చువల్ ఫంక్షన్ యొక్క ప్రాథమిక నిర్వచనాన్ని ప్రవేశపెట్టాము, ఇది కొత్త రకం సభ్యుల ఫంక్షన్, ఇది మేము మరిన్ని తరగతులలో ప్రదర్శిస్తున్నాము.
మేము తదుపరి మాడ్యూల్లో డైనమిక్ బైండింగ్ గురించి చర్చించడం కొనసాగిస్తాము.
మేము తదుపరి మాడ్యూల్లో డైనమిక్ బైండింగ్ గురించి చర్చించడం కొనసాగిస్తాము.
వేర్వేరు కొత్త ఆపరేటర్లు మరియు వాటి సంబంధిత డిలీట్ ఆపరేటర్ల మధ్య తేడాలు మరియు వారు నేర్చుకున్న ప్రాథమిక సూత్రం, మనం కేటాయించినా లేదా ఫంక్షన్ చేసినా, కేటాయించిన వాటిని మేము జాగ్రత్తగా అర్థం చేసుకున్నాము. మేము దానిని ఉపయోగిస్తాము సంబంధిత డి-కేటాయింపు ఫంక్షన్ లేదా ఆపరేటర్ - మల్లాక్ ఉచితంగా, ఆపరేటర్ తొలగింపుతో ఆపరేటర్ కొత్తది, ఆపరేటర్ అర్రే, ఆపరేటర్ అర్రేతో) తొలగింపు, ఆపరేటర్ (లు) కొత్తవి మరియు నేను ప్లేస్మెంట్ను పునరుద్ధరించినట్లయితే, మీకు ఎటువంటి తొలగింపు ఉండకూడదు మరియు లేకపోతే మాకు పూర్తిగా unexpected హించని సమస్యలు వచ్చే అవకాశం ఉంది.
వేర్వేరు కొత్త ఆపరేటర్లు మరియు వాటి సంబంధిత డిలీట్ ఆపరేటర్ల మధ్య తేడాలు మరియు వారు నేర్చుకున్న ప్రాథమిక సూత్రం, మనం కేటాయించినా లేదా ఫంక్షన్ చేసినా, కేటాయించిన వాటిని మేము జాగ్రత్తగా అర్థం చేసుకున్నాము. మేము దానిని ఉపయోగిస్తాము సంబంధిత డి-కేటాయింపు ఫంక్షన్ లేదా ఆపరేటర్ - మల్లాక్ ఉచితంగా, ఆపరేటర్ తొలగింపుతో ఆపరేటర్ కొత్తది, ఆపరేటర్ అర్రే, ఆపరేటర్ అర్రేతో) తొలగింపు, ఆపరేటర్ (లు) కొత్తవి మరియు నేను ప్లేస్మెంట్ను పునరుద్ధరించినట్లయితే, మీకు ఎటువంటి తొలగింపు ఉండకూడదు మరియు లేకపోతే మాకు పూర్తిగా unexpected హించని సమస్యలు వచ్చే అవకాశం ఉంది.
చివరకు ఈ కొత్త ఆపరేటర్లను ఓవర్లోడ్ చేయడం మరియు ఆపరేటర్లను ఎలా తొలగించాలో కూడా చూశాము, ఇది ఇప్పుడు ఆపరేటర్గా ఉండటం వల్ల ప్రయోజనం.
చివరకు ఈ కొత్త ఆపరేటర్లను ఓవర్లోడ్ చేయడం మరియు ఆపరేటర్లను ఎలా తొలగించాలో కూడా చూశాము, ఇది ఇప్పుడు ఆపరేటర్గా ఉండటం వల్ల ప్రయోజనం.
మరియు ఈ ఆపరేటర్లను ఓవర్లోడ్ చేయడం ద్వారా వినియోగదారు కోరుకున్న విధంగా విభిన్న కార్యాచరణను ఎలా నిర్వహించవచ్చో మేము చూపించాము.
మరియు ఈ ఆపరేటర్లను ఓవర్లోడ్ చేయడం ద్వారా వినియోగదారు కోరుకున్న విధంగా విభిన్న కార్యాచరణను ఎలా నిర్వహించవచ్చో మేము చూపించాము.
కాబట్టి, ఇక్కడ అలాంటి క్రొత్త, క్రొత్త ప్లేస్మెంట్ కోసం లేదా ఇక్కడ కొత్త ప్లేస్మెంట్ కోసం, మీకు ఇలాంటి తొలగింపు లేదు; లేకపోతే, మీరు ప్రారంభ ఉదాహరణ నుండి ప్రారంభమయ్యే మిగిలిన ఉదాహరణల ద్వారా వెళ్ళవచ్చు లేదా ఇతర అంశాలను సూచించడానికి వాటిని ఉపయోగించవచ్చు.
కాబట్టి, ఇక్కడ అలాంటి క్రొత్త, క్రొత్త ప్లేస్మెంట్ కోసం లేదా ఇక్కడ కొత్త ప్లేస్మెంట్ కోసం, మీకు ఇలాంటి తొలగింపు లేదు; లేకపోతే, మీరు ప్రారంభ ఉదాహరణ నుండి ప్రారంభమయ్యే మిగిలిన ఉదాహరణల ద్వారా వెళ్ళవచ్చు లేదా ఇతర అంశాలను సూచించడానికి వాటిని ఉపయోగించవచ్చు.
మీరు ఈ కోడ్ ద్వారా వెళితే, ఇది కొంచెం పాయింటర్ (పాయింటర్) ట్వీకింగ్, మరియు ఇది ఏ ఇతర పాయింటర్ (పాయింటర్) మానిప్యులేషన్ మాదిరిగానే ఉందని మీరు అర్థం చేసుకోవడం అలవాటు చేసుకోవడం మంచిది.
మీరు ఈ కోడ్ ద్వారా వెళితే, ఇది కొంచెం పాయింటర్ (పాయింటర్) ట్వీకింగ్, మరియు ఇది ఏ ఇతర పాయింటర్ (పాయింటర్) మానిప్యులేషన్ మాదిరిగానే ఉందని మీరు అర్థం చేసుకోవడం అలవాటు చేసుకోవడం మంచిది.
కానీ ఒకే తేడా ఏమిటంటే, చిరునామాలు డైనమిక్ స్టోర్ నుండి రావడం లేదు, అవి ఉచిత స్టోర్ నుండి రావడం లేదు, నేను అందించిన బఫర్ నుండి చిరునామాలు వస్తున్నాయి.
కానీ ఒకే తేడా ఏమిటంటే, చిరునామాలు డైనమిక్ స్టోర్ నుండి రావడం లేదు, అవి ఉచిత స్టోర్ నుండి రావడం లేదు, నేను అందించిన బఫర్ నుండి చిరునామాలు వస్తున్నాయి.
ఈ మాడ్యూల్లో మరియు తరువాత, మేము మినహాయింపులను పరిశీలించడానికి ప్రయత్నిస్తాము.
సి ++ లో పిలువబడే మినహాయింపులు ఏమిటి? ఇది ప్రాథమికంగా వ్యవస్థ యొక్క లోపాలు, లోపాలు మరియు తీవ్రమైన మినహాయింపు పరిస్థితులను నిర్వహిస్తుంది.
మరియు దీని కోసం అనేక రకాల ఎంపికలు అందుబాటులో ఉన్నాయి.
రియల్ సి ++ చాలా లక్షణాలను అందిస్తుంది, చాలా శక్తివంతమైన మినహాయింపు నిర్వహణ లక్షణం.
మేము తదుపరి మాడ్యూల్లో చేసే ముందు.
సి లో ఉన్న లోపాన్ని పరిష్కరించడానికి మేము మొదట ఎంపికలను శీఘ్రంగా పరిశీలిస్తాము.
వీటి గురించి మీకు ఇప్పటికే తెలుసునని నేను ఖచ్చితంగా అనుకుంటున్నాను, కాని అవి C ++ లో చెల్లుబాటు అయ్యేవి కాబట్టి మేము ఒక్కసారి పరిశీలిస్తాము.
బాగా, కానీ వాటికి కొన్ని సూక్ష్మచిత్రాలు ఉన్నాయి, ఇవి C ++ మినహాయింపులను వేవ్ చేయడానికి ప్రయత్నిస్తాయి.
కాబట్టి, ఇది మాడ్యూల్ 36 కొరకు మాడ్యూల్ అవుట్ లైన్ మరియు మాడ్యూల్ 37, వాస్తవానికి ఈ ప్రస్తుత మాడ్యూల్లో మేము చేసే నీలి భాగం మరియు ఇది మీ ఎడమ వైపున లభిస్తుంది స్క్రీన్ కూడా స్లైడ్ అవుతుంది.
కాబట్టి, మినహాయింపులు ఏమిటి? మినహాయింపులు సాధారణంగా చాలా చోట్ల తరచుగా మరియు అనుకోకుండా సంభవించే పరిస్థితులు.
ఇది సాధారణంగా ప్రోగ్రామ్ లోపానికి ద్రోహం చేస్తుంది మరియు కొంత మొత్తంలో ప్రోగ్రామాటిక్ ప్రతిస్పందన అవసరం.
సాధారణంగా, రన్ టైమ్ అసమానతల కారణంగా మినహాయింపు పరిస్థితులు తలెత్తుతాయి, కానీ తప్పనిసరిగా సమయ క్రమరాహిత్యాలు కాదు, లేకపోతే సంభవించవచ్చు.
మరియు ఈ లోపాలు సంభవించినప్పుడు, అది ప్రోగ్రామ్ను నిర్వీర్యం చేస్తుంది.
అందువల్ల, ప్రోగ్రామ్ క్రాష్ అవుతుంది లేదా కొన్ని ప్రమాదకర పరిస్థితులలో మరియు అలాంటి వాటిలో చిక్కుకుంటుంది.
ఇది నిజంగా చెడ్డది అయితే అది ప్రస్తుత ప్రోగ్రామ్ను మాత్రమే ప్రభావితం చేయదు, కానీ ఇది సిస్టమ్ను ఒకేసారి క్రిందికి లాగగలదు.
కాబట్టి, సి లో, మనం ఏమి చేస్తున్నాం, అన్ని విభిన్నమైన ప్రతికూల భాగాలు, విషయాలు తప్పుగా మారే అన్ని పరిస్థితులు మరియు వాటిని జాగ్రత్తగా చూసుకోవడానికి ప్రయత్నిస్తున్న అనేక రక్షణాత్మక పద్ధతులను మేము అనుసరిస్తున్నాము. ఆమె ప్రయత్నిస్తోంది.
కాబట్టి ఏమి జరుగుతుందంటే, మేము ఈ విధంగా మినహాయింపులను జాగ్రత్తగా చూసుకోవడానికి ప్రయత్నించినప్పుడు, మేము పూర్తిగా లోపం కోడ్లో మునిగిపోతాము, బదులుగా కోడ్ ఈ లోపం పరిస్థితులను జాగ్రత్తగా చూసుకోవాలి, మీరు చాలా దోష మార్గాల్లో చిక్కుకుంటారు, ఇది ప్రోగ్రామ్లోని అసలు డిజైన్ మార్గాన్ని అస్తవ్యస్తం చేయండి.
అందువల్ల ఇది మినహాయింపు స్థితి యొక్క ప్రాథమిక సమస్య.
మరియు చాలా కారణాలు ఉన్నాయి, నా ఉద్దేశ్యం ఇది సింబాలిక్ ఉపన్యాసం, ఇందులో చాలా రకాల మినహాయింపులు ఉన్నాయి, కాని ఇతరులు కూడా ఉండవచ్చు.
ఉదాహరణకు, ప్రాధమిక అనూహ్య సిస్టమ్ స్థితి, ఉదాహరణకు, మెమరీ, డిస్క్ స్పేస్ మరియు వంటి వనరులను ఖాళీ చేయడం.
అంతర్గత స్టోర్ ఇప్పటికే నిండిన స్టాక్లోకి ప్రవేశించడానికి ప్రయత్నించినట్లు.
వినియోగదారు నియంత్రణ సి ఇచ్చిన ప్రోగ్రామ్ రద్దు లేదా అలాంటిదే బాహ్య సంఘటనల వల్ల కావచ్చు.
ఇది సాకెట్ ఈవెంట్ వల్ల సంభవించవచ్చు లేదా ఇది వివిధ తార్కిక లోపాల వల్ల కూడా సంభవించవచ్చు, ఉదాహరణకు, మీరు ఖాళీ స్టాక్ నుండి పాప్ చేయడానికి ప్రయత్నిస్తున్నట్లు తార్కిక లోపం ఒకటి.
ఇప్పుడు, ఇది సిస్టమ్ వనరులకు సంబంధించినది కాదు, కానీ తార్కికంగా ఇది లోపం.
మెమరీ రీడ్, సరైన లోపం మొదలైన వనరుల లోపాలు ఉండవచ్చు.
అంకగణిత ఓవర్ఫ్లో అండర్ఫ్లో వంటి ఇతర రన్ టైమ్ లోపాలు అవి రెండు పరుగులు జోడించే ముందు సంభవించవచ్చు మరియు ఈ సంఖ్య దాని కోసం సరిహద్దులు లేకుండా ఉండవచ్చు.
0 ద్వారా విభజించడం వంటి నిర్వచించబడని ఆపరేషన్లకు కూడా ఇది జరగవచ్చు, ఇది మినహాయింపులకు దారితీస్తుంది.
కాబట్టి, ఇవి కొన్ని నిర్దిష్ట కారణాలు, కానీ వాటిలో కొన్ని ఎక్కువ కావచ్చు.
అందువల్ల, C ++ సందర్భంలో మినహాయింపును నిర్వహించడం చాలా ముఖ్యం, జార్న్ స్ట్రౌస్ట్రప్ యొక్క వ్యాఖ్య సూచించినట్లుగా, ఒక యంత్రాంగం, ఈ సందర్భోచిత అతిశయోక్తి అనే ముఖ్యమైన ఆలోచన. ప్రవాహం వీటి కారణంగా ఉత్పన్నమయ్యే ప్రవాహాన్ని వేరు చేయడానికి ప్రయత్నిస్తుంది మేము నిజంగా రూపొందించిన సాధారణ లేదా సంతోషకరమైన ప్రవాహం నుండి అసాధారణ పరిస్థితులు.
కాబట్టి, ఇక్కడ మనం అర్థం చేసుకోవాలనుకునే ప్రాథమిక విషయం ఇది.
అందువల్ల, ఈ సందర్భంలో ప్రస్తుత స్థితిని ముందుగా నిర్ణయించిన ప్రదేశంలో భద్రపరచాలి మరియు ప్రోగ్రామ్ యొక్క అమలును ముందే నిర్వచించిన మినహాయింపు హ్యాండ్లర్ లేదా ఫంక్షన్ లేదా లోపం స్థితిని జాగ్రత్తగా చూసుకునే కోడ్ యొక్క భాగానికి కేటాయించాలి.
కాబట్టి, మినహాయింపుల రకాలు ఏమిటో మనం కూడా చూస్తే? మేము ఇప్పుడే జాబితా చేసిన వివిధ కారణాలను చూడవచ్చు.
వాటిని విస్తృతంగా అసమకాలిక మరియు సమకాలిక రెండు గ్రూపులుగా వర్గీకరించవచ్చు.
అసమకాలిక అనేది సాధారణంగా వేరే థ్రెడ్ నుండి సంభవిస్తుంది.
అందువల్ల, ప్రోగ్రామ్ యొక్క అంతరాయం వంటి unexpected హించని విధంగా వచ్చే ప్రోగ్రామ్ యొక్క సాధారణ ప్రవాహంతో ఇది ఏకీభవించదు.
లేదా ఇది ఈ కోణంలో ప్రణాళికాబద్ధమైన మినహాయింపు కావచ్చు; వాస్తవానికి మీరు లోపాల కోసం ప్లాన్ చేయరు, కానీ ఇది ప్రోగ్రామ్ యొక్క ప్రవాహంతో జరిగే విషయం.
ఉదాహరణకు, మీరు మెమరీని కేటాయించాలనుకున్నారు మరియు వనరు తక్కువగా ఉంది, కాబట్టి మినహాయింపు ఉంది, మీరు ఒక సంఖ్యతో విభజించాలనుకున్నారు మరియు ఆ సంఖ్య సున్నా అవుతుంది.
కాబట్టి అసమకాలిక మినహాయింపులను నిర్వహించడానికి కొద్దిగా భిన్నమైన శైలి ఉంటుంది, కానీ ప్రకృతిలో సమకాలికమైన చాలా పరిస్థితులకు.
అది మామూలుగా ఉండాలని మేము కోరుకుంటున్నాము.
గొంతు లక్షణం అని పిలువబడే C ++ లోని కొన్ని లక్షణాల సందర్భంలో మేము వాటిని అమలు చేస్తాము.
మేము వాటిని పరిశీలిస్తాము.
ఇప్పుడు, మేము విశ్లేషణలోకి రాకముందు, మినహాయింపు వాస్తవానికి ఐదు వేర్వేరు దశలలో సంభవిస్తుందని అర్థం చేసుకుందాం. నాకు ఒక ఉదాహరణ మాత్రమే చూపిద్దాం, అప్పుడు మనం ఇక్కడకు తిరిగి రావచ్చు.
ఇది చాలా సాధారణ పరిస్థితి, ఇది ఒక ఫంక్షన్ మెయిన్, ఇది ఫంక్షన్ f అని పిలుస్తుంది మరియు ఈ సందర్భంలో, లోపం, ఫంక్షన్ f సరిగ్గా పనిచేస్తే అది విల్ రిటర్న్ 0 అని భావించబడుతుంది; లేకపోతే, ఇది సున్నా కాని విలువను అందిస్తుంది.
కాబట్టి, f ను 0 కి తిరిగి ఇస్తే మీరు దాన్ని తనిఖీ చేయండి మరియు అది 0 కి తిరిగి రాకపోతే, ఏదో తప్పు జరిగిందని మీకు తెలుసు మరియు మీరు దానిని జాగ్రత్తగా చూసుకోవడానికి ప్రయత్నిస్తారు.
కాబట్టి, మీరు ఏమి జరుగుతుందో చూస్తే, F అమలు అవుతోంది, అది అమలు చేయబడుతోంది, అది అమలు అవుతోందని అనుకుందాం, మరియు ఏదో ఒక సమయంలో అది లోపం స్థితికి చేరుకుంటుంది, నేను దానిని ఇక్కడ ఒక రకమైన బూల్ గా చూపించాను, కాని అది చేయవచ్చు తక్కువ జ్ఞాపకశక్తి మరియు ఇలాంటి అనేక పరిస్థితుల కారణంగా తలెత్తుతుంది.
మరియు ఈ దశను మినహాయింపు అంటారు, ఇక్కడ లోపం పరిస్థితి సృష్టించబడిందని మీరు గుర్తించారు.
ఆపై మీరు ఈ లోపాన్ని నివేదిస్తారు, ఎందుకంటే ఉదాహరణకు, ఇది తక్కువ మెమరీ అయితే తక్కువ మెమరీ విషయంలో ఏమి చేయాలో మీకు తెలియదు.
కాబట్టి, ఇక్కడ f మేము చెప్పేది ఏమిటంటే మీరు మినహాయింపు వస్తువును ఉత్పత్తి చేస్తారని, C ++ సందర్భంలో దాని అర్థం ఏమిటో మీరు అర్థం చేసుకుంటారు, కాని ప్రాథమిక విషయం ఏమిటంటే, కాలర్ ఒక దోషాన్ని నివేదించాలనుకుంటున్నారు.
అందువల్ల, ఇది జరిగినప్పుడు నియంత్రణ ఇక్కడ తిరిగి వస్తుంది, మరియు నియంత్రణ సున్నాకి తిరిగి వస్తుంది, ఏది విఫలమైతే అది ఖచ్చితంగా ఈ పరీక్షను సంతృప్తిపరుస్తుంది.
కాబట్టి, లోపం పరిస్థితి సంభవించిందని మినహాయింపు సంభవించిందని మీకు తెలుసు.
కాబట్టి, మూడవ దశ ఏమిటంటే, కాలర్ లోపం సంభవించిందని గుర్తించగలిగారు.
ఆపై మేము చెప్పేది ఏమిటంటే, హ్యాండ్లర్ అనేది కోడ్ యొక్క భాగం, ఈ లోపం పరిస్థితి సృష్టించబడినప్పుడు మాత్రమే అమలు చేయాలి.
ఉదాహరణకు, ఇది తక్కువ మెమరీ కారణంగా ఉంటే, మీరు ఇక్కడ ఏమి చేయాలనుకుంటున్నారో నిర్ణయించుకోవాలి.
ఉదాహరణకు, మీరు ఇప్పటికే కేటాయించిన కొన్ని జ్ఞాపకాలు మీకు అనిపించవచ్చు మరియు మీరు ప్రస్తుతం ఉపయోగించడం లేదు కాబట్టి మీరు వాటిని విడుదల చేయవచ్చు, తద్వారా ఎక్కువ మెమరీ అందుబాటులోకి వస్తుంది మరియు మీరు మళ్లీ కాల్ చేయవచ్చు.
మీరు చేయాలని నిర్ణయించుకున్నది మినహాయింపు యొక్క ప్రాథమిక నిర్వహణ.
ఒకసారి అది నిర్వహించబడితే, మీరు ఆ లోపం నుండి పొందే రికవరీ దశ అని మీరు చెప్పే సాధారణ ప్రవాహానికి తిరిగి వస్తారు.
కాబట్టి, ఏదైనా మినహాయింపు ద్వారా నిర్వహించగల అసలు ఐదు దశలను సృష్టించండి, నివేదించండి, గుర్తించండి, నిర్వహించండి మరియు తిరిగి పొందండి.
కాబట్టి, మేము ఇప్పుడు తిరిగి వెళితే; క్షమించండి, నేను మునుపటి స్లైడ్కు తిరిగి వెళ్లాలనుకుంటున్నాను.
కాబట్టి, ఇక్కడ ఈ ఐదు దశల లోపం సంఘటన ఉంది, ఇది సృష్టించబడింది, ఇది ఆబ్జెక్ట్, మరియు ఇంక్రిమెంట్ రిపోర్ట్, ఇది డిటెక్షన్, హ్యాండ్లింగ్ మరియు రిట్రీవల్, ఇవి లోపం పరిస్థితి విషయంలో మీరు చేయగలిగే ఇతర వివిధ విషయాలు.
మరియు మీరు దీన్ని ఎలా చేయాలో మీకు అందుబాటులో ఉన్న యంత్రాంగంపై ఆధారపడి ఉంటుంది.
అందువల్ల, సి లో, మీకు వివిధ రకాల యంత్రాంగాలు ఉన్నాయి మరియు చాలా కొద్ది మందికి మాత్రమే భాషా మద్దతు ఉంది, వాస్తవానికి భాష దేనికీ మద్దతు ఇవ్వదు. భాష లోపాన్ని దృష్టిలో ఉంచుకుని సి దేనికీ మద్దతు ఇవ్వదు.
కానీ మీరు లోపాలను మరింత నిర్మాణాత్మకంగా నిర్వహించడానికి భాష యొక్క కొన్ని లక్షణాలను ఉపయోగించవచ్చు మరియు బదులుగా, ఆ లోపాలను నిర్వహించడానికి మిమ్మల్ని అనుమతించడానికి ప్రామాణిక లైబ్రరీలో భాగమైన అనేక లైబ్రరీలు ఉన్నాయి. అదనపు సౌలభ్యాన్ని అందించండి.
కాబట్టి, మొదట మీరు త్వరగా పరిశీలించగలరని మీరు చేయవచ్చు.
అందువల్ల, సి లో, మీకు వివిధ రకాల యంత్రాంగాలు ఉన్నాయి మరియు చాలా కొద్ది మందికి మాత్రమే భాషా మద్దతు ఉంది, వాస్తవానికి భాష దేనికీ మద్దతు ఇవ్వదు. భాష లోపాన్ని దృష్టిలో ఉంచుకుని సి దేనికీ మద్దతు ఇవ్వదు.
కానీ మీరు లోపాలను మరింత నిర్మాణాత్మకంగా నిర్వహించడానికి భాష యొక్క కొన్ని లక్షణాలను ఉపయోగించవచ్చు మరియు బదులుగా, ఆ లోపాలను నిర్వహించడానికి మిమ్మల్ని అనుమతించడానికి ప్రామాణిక లైబ్రరీలో భాగమైన అనేక లైబ్రరీలు ఉన్నాయి. అదనపు సౌలభ్యాన్ని అందించండి.
కాబట్టి, మొదట మీరు త్వరగా పరిశీలించగలరని మీరు చేయవచ్చు.
కానీ చాలా సి ప్రోగ్రామ్లు ఈ యంత్రాంగాలను ఉపయోగిస్తాయి, ఉదాహరణకు, ఇక్కడ నేను ఒక పూర్ణాంకానికి తిరిగి వచ్చే పుష్ని చూస్తున్నాను.
స్టాక్ కోసం పుష్ పద్ధతిని మేము చాలా తరచుగా చూశానని మీరు గుర్తుంచుకుంటారు మరియు మాకు సాధారణంగా సున్నా రాబడి ఉంటుంది.
ఎందుకంటే పుష్ నుండి ఏదైనా తిరిగి పొందాలని మేము నిజంగా ఆశించము, కానీ మీరు కలిగి ఉన్న లోపాన్ని గుర్తుంచుకోండి అది ఒక పూర్ణాంకానికి తిరిగి వస్తుంది మరియు అది గోటో అయితే, స్టోర్ పూర్తి రాబడి అని చెప్పడం 0 ఆ పుష్ని పేర్కొంటుంది నొక్కిచెప్పారు.
అందువల్ల, కాలర్ మళ్లీ కనుగొని దాన్ని మరింతగా నిర్వహించాల్సి ఉంటుంది.
కాబట్టి, ఇవి చాలా సరళమైన యంత్రాంగాలు. విస్తృతంగా ఉపయోగించబడే చాలా గ్రంథాలయాలు దీనిని ఉపయోగిస్తాయి, కానీ ఆ సందర్భంలో చాలా అసమర్థమైనవి.
మేము చాలా తరచుగా ఉపయోగించే మరొక విషయం స్థానిక గోటో.
ఉదాహరణ అంటే మీరు స్థానిక గోటో చేయగల అనేక మార్గాలు ఉన్నాయి, అసలు గోటో విషయంలో, బ్రేక్ రిలీజ్, డిఫాల్ట్ స్విచ్ కేసు, ఇవన్నీ కేసులు.
ఉదాహరణకు, స్విచ్లో మనకు డిఫాల్ట్ ఉంది.
కాబట్టి, ఇవన్నీ మనం సంతోషకరమైన రీతిలో చేయలేకపోయిన పరిస్థితులను జాగ్రత్తగా చూసుకోవడానికి ప్రయత్నిస్తున్న సందర్భాలు.
కాబట్టి, స్థానిక గోటో చాలా నిర్దిష్టమైన పద్ధతి.
ఉదాహరణకు, నాకు ఈ కోడ్ ఉంది, దయచేసి కోడ్ ఏమి చేస్తుందనే దాని గురించి బాధపడకండి, కానీ ఇక్కడ రెండు లేబుల్స్ ఉన్నాయనే వాస్తవాన్ని చూడండి.
కాబట్టి, ఈ రెండు లేబుల్స్ కోడ్ యొక్క విజయవంతమైన పనితీరు మరియు కోడ్ యొక్క లోపం ఫంక్షన్ యొక్క హోదా.
అందువల్ల, కోడ్ యొక్క వివిధ భాగాలలో, మీరు ఎక్కడైనా అలాంటి లోపం ఎదుర్కొంటే, మీరు ప్రాథమికంగా ఈ లేబుల్కు వెళతారు; మీరు విజయవంతంగా పూర్తి అయితే, మీరు దానిపై దూకుతారు.
లోపం విషయంలో మీకు సహాయపడేది ఏమిటంటే, మీరు చాలా విషయాలను జాగ్రత్తగా చూసుకోవటానికి చాలా కోడ్ కలిగి ఉండవచ్చు, తొలగించాల్సిన కొన్ని అంశాలు ఉండవచ్చు, అవి నాశనం కావాలి మరియు మొదలైనవి, మీరు అన్నింటినీ జాగ్రత్తగా చూసుకోవచ్చు ఇవి ఒకే చోట, మీరు ఆ కోడ్ను కాపీ చేయవలసిన అవసరం లేదు, ఇది చాలా ప్రదేశాలు.
కాబట్టి, మీకు ఈ కోడ్ ఉన్నట్లు అనిపిస్తుంది మరియు ఈ లోపం పరిస్థితులలో ఇది ఈ స్థాయికి వస్తుంది; మీరు విజయవంతం అయినప్పుడు మీరు సిగ్రెచ్టోక్ లేబుల్ వద్దకు వస్తారు మరియు అది అక్కడి నుండి తిరిగి వస్తుంది.
అందువల్ల, లోపాలను జాగ్రత్తగా చూసుకోవడానికి ఇది అనుకూలమైన మార్గం.
గ్లోబల్ వేరియబుల్స్ అని పిలువబడే మరొకటి.
అందువల్ల, చాలా సందర్భాల్లో ఎసికి గ్లోబల్ గా విధులు ఉన్నాయి మరియు ఇతర స్కూపింగ్ లేదు.
అందువల్ల, మీరు సంబంధం లేని ఫంక్షన్లను చేయవచ్చు, ప్రత్యేకించి లైబ్రరీ యొక్క విధులు ఎలా లోపం కలిగి ఉంటాయో, దానిని నియమించే మార్గం కాకపోవచ్చు.
అందువల్ల, వారు చేసేది ప్రాథమికంగా లోపం ఉంటే గ్లోబల్ వేరియబుల్ను సెట్ చేస్తుంది మరియు ఇది ప్రామాణిక లైబ్రరీ ఇర్నోలో ఇవ్వబడుతుంది.
c లో ఉన్న h మీకు తెలిసినట్లుగా cerrno.h అవుతుంది.
కాబట్టి, ఉదాహరణకు, ఇక్కడ మేము ఒక శక్తిని చేయడానికి ప్రయత్నిస్తున్నాము, ఇది లైబ్రరీ ఫంక్షన్ అయిన ఒక పౌ, ఇది x కి y శక్తిని పెంచుతుంది మరియు ఇది చాలా పెద్దదిగా ఉంటుంది.
కాబట్టి, ఇది చాలా పెద్దదిగా మారితే, అది వేరియబుల్ ఎర్రర్ నెం.
ఈ లోపం కాదు. ఇది గ్లోబల్ గా ప్రకటించబడినందున ఇది ఇక్కడ ప్రకటించబడిందని మీరు చూడవచ్చు.
కాబట్టి, మీరు దానిని 0 కి సెట్ చేయడం ద్వారా ప్రారంభించండి, ఇది ప్రాథమికంగా లోపం లేదని క్లియర్ చేస్తుంది.
ఆపై ఈ ఫంక్షన్ కొన్ని శ్రేణి లోపం x లోకి వస్తే, అప్పుడు శక్తి y ప్రాతినిధ్యం వహించడానికి చాలా పెద్దదిగా ఉండవచ్చు, అప్పుడు లోపం లోపానికి సెట్ చేయబడుతుంది, ఇది లైబ్రరీ. (లైబ్రరీ) స్థిరంగా తిరిగి కనిపించడం ద్వారా పరిస్థితి ఏమిటో మీకు తెలియజేస్తుంది వంటిది.
ఇది డొమైన్ లోపం అయితే మీరు పవర్ x ను పవర్ y కి పెంచలేరు, అది ఇరాన్ అడోమ్ అవుతుంది.
అందువల్ల, మళ్ళీ మీరు బాధ్యత వహిస్తారు, ఈ లైబ్రరీ కార్యాచరణలో, ప్రాథమిక సృష్టి మరియు నివేదిక శక్తిపై ఉంది, మరియు అప్లికేషన్ ప్రోగ్రామర్గా, మీరు కోడ్ను చూస్తున్నారని కనుగొనడం మీ బాధ్యత. చేయగలదు, లేకపోతే అది మీరు వాస్తవానికి లోపం స్థితిని జాగ్రత్తగా చూసుకోవచ్చు.
ఈ విధంగా గ్లోబల్ వేరియబుల్స్ ఉపయోగించి, హెడర్ సి లో లోపాలను నిర్వహించడానికి ఇది చాలా సాధారణ మార్గం.
చాలా లోపాలు ముఖ్యంగా మనం దీనికి మించి కదలడం లేదని అర్ధం.
అందువల్ల, ఆ లోపం సంభవించినట్లయితే, మేము నిజంగా ప్రోగ్రామ్ను ముగించాలి.
ఇప్పుడు, సాధారణంగా C కి మద్దతు ఇచ్చే రెండు రకాల ముగింపులు ఉన్నాయి; ప్రధాన భాగం అసాధారణ ముగింపు, దీని కోసం సి స్టాండర్డ్ లైబ్రరీలో అనేక విధులు అందించబడ్డాయి.
గర్భస్రావం ఉంది, ఇక్కడ మీరు సి ప్రోగ్రామ్లోని ఏ సమయంలోనైనా కాల్ చేయవచ్చు మరియు అందువల్ల సి ++ ప్రోగ్రామ్లో.
కాబట్టి, దీనిని విపత్తు ప్రోగ్రామ్ వైఫల్యం అంటారు. కాబట్టి, గర్భస్రావం చేసేవాడు గర్భస్రావం అని పిలువబడే ప్రదేశం నుండి ఖచ్చితంగా ఉంటాడు, ఇది ప్రోగ్రామ్ అంతటా కలిసి ఆ ఫంక్షన్ నుండి కాకుండా ఫంక్షన్ను సృష్టిస్తుంది మరియు నిష్క్రమిస్తుంది.
ఏదేమైనా, లోతుగా అది గూడు మరియు పర్యావరణానికి తిరిగి వస్తుంది.
దీనికి విరుద్ధంగా, మీరు నిష్క్రమణ ఫంక్షన్ను కూడా ఉపయోగించవచ్చు, గర్భస్రావం మరియు ఎజెక్షన్ రెండూ ముగింపు పరంగా అసాధారణమైన ముగింపులు, అవి ఆ విధంగానే ఉంటాయి.
కానీ ప్రారంభించిన గ్లోబల్ వస్తువులు ప్రారంభించిన స్థానిక వస్తువులు అని చెప్పబడితే, మరియు మీరు మొదట నిష్క్రమణను ముగించాలనుకుంటున్న చోట మీరు ఉన్నారనే వాస్తవం విషయంలో ఒక ముఖ్యమైన వ్యత్యాసం ఉంది.
మీరు గర్భస్రావం చేస్తే అది భయంకరమైనది, కాబట్టి మీరు వీటిని విధ్వంసకరమని పిలవరు.
కాబట్టి, ఈ వస్తువులు ప్రాథమికంగా విధ్వంసం లేకుండా బయటకు వెళ్తాయి, ఈ వస్తువులు చాలా ప్రమాదకరమైనవి కావచ్చు.
ఉదాహరణకు, గ్లోబల్ ఆబ్జెక్ట్లలో ఒకదాన్ని సృష్టించవచ్చు, ఇది గ్లోబల్ డేటాబేస్ కోసం ఒక లాక్ అని చెప్పే టన్ను.
మరియు ఆ లాక్ని విడుదల చేయాల్సిన డిస్ట్రాయర్ను మీరు పిలవకపోతే, మీ ప్రోగ్రామ్ పూర్తయినప్పుడు కూడా మీ ప్రోగ్రామ్ లాక్ చేయబడిందని అర్థం మరియు భవిష్యత్తులో దాన్ని అన్లాక్ చేయడం చాలా కష్టం.
దీనికి విరుద్ధంగా, నిష్క్రమణ కూడా ఇదే విధమైన ప్రవర్తనను కలిగి ఉంది, కానీ ఇది ఒక కోడ్ను క్లియర్ చేస్తుంది, ఇది ప్రాథమికంగా ఇప్పటివరకు సృష్టించబడిన అన్ని డిస్ట్రక్టర్లను వారి సృష్టి యొక్క రివర్స్ ఆర్డర్లో పిలుస్తుంది మరియు దీనిని కాల్ తరువాత పిలుస్తారు, ఇది శుభ్రపరుస్తుంది.
మరియు దానిని శుభ్రం చేయడానికి ఇది atexit అని పిలువబడే మరొక లైబ్రరీ ఫంక్షన్ను ఉపయోగిస్తుంది; atexit ప్రాథమికంగా ఈ లోపాలన్నింటికీ ఒక సాధారణ హ్యాండ్లర్.
కాబట్టి, అది ఏమిటంటే, ఇది ప్రాథమికంగా వ్యక్తిగత డిస్ట్రక్టర్లను ఫంక్షన్ పాయింటర్లుగా నియంత్రిస్తుంది మరియు మీరు ప్రోగ్రామ్ నుండి నిష్క్రమించినప్పుడు అది వారి వాస్తవ నిర్మాణానికి రివర్స్ క్రమంలో పిలుస్తుంది.
కాబట్టి, మీరు ఈ కోడ్ను ప్రయత్నించవచ్చు, ఇది మీకు ఇక్కడ రెండు హ్యాండ్లర్లు నిర్వచించబడిందని చూపిస్తుంది.
ఈ హ్యాండ్లర్లు ఏమి చేస్తారో చింతించకండి, వారు ఆచరణాత్మకంగా ఏమీ చేయరు మరియు ప్రధానంగా మీరు వాటిని అటాక్సిట్తో నమోదు చేయవచ్చు, కాబట్టి మీరు ఇక్కడ ప్రోగ్రామ్ నుండి నిష్క్రమించినట్లయితే మీరు ప్రాథమికంగా విజయవంతమైన నిష్క్రమణ చేస్తున్నారు.
మీరు ప్రోగ్రామ్ నుండి నిష్క్రమించినట్లయితే, అది వెంటనే నిష్క్రమించదు, ఇది మొదట చివరి రిజిస్టర్ ఫంక్షన్ను పిలుస్తుంది, ఇది అటాక్సైట్ హ్యాండ్లర్ 2, అప్పుడు అది మునుపటి రిజిస్టర్ ఫంక్షన్ను అటాక్సైట్ హ్యాండ్లర్ 1 అని పిలుస్తుంది మరియు అప్పుడు మాత్రమే అది నిష్క్రమిస్తుంది. వెళ్తుంది.
కాబట్టి, ఈ యంత్రాంగాన్ని వస్తువులను వాటి డిస్ట్రక్టర్కు కాల్ చేయడం ద్వారా శుభ్రపరచడానికి మాత్రమే ఉపయోగించవచ్చు, కానీ మీకు కావలసిన ఏదైనా శుభ్రపరిచే పనిని చేయడానికి కూడా దీనిని ఉపయోగించవచ్చు.
మరియు మీరు దీనికి తగిన హ్యాండ్లర్ను ఉపయోగించవచ్చు.
ఆపై మీకు కావలసినది విజయం లేదా వైఫల్యంతో నిష్క్రమించండి.
కాబట్టి, అసాధారణ ముగింపు అనేది ప్రోగ్రామ్ క్రాష్ను నివారించడానికి కనీసం మిమ్మల్ని అనుమతించే ఒక ప్రధాన లక్షణం, మీరు గర్భస్రావం ఉపయోగించకపోతే, గర్భస్రావం ప్రాథమికంగా ప్రోగ్రామ్లోని క్రాష్కు సమానం.
అందువల్ల, మీరు ఉపయోగించగల మరొకటి, షరతులతో కూడిన ముగింపు అని పిలుస్తారు, ప్రాథమికంగా డీబగ్ టైమ్ ఫీచర్, ఈస్టర్ అని పిలువబడే లైబ్రరీ, ఇది స్వర స్థూలతను కలిగి ఉంటుంది, ఇది మీరు స్వరపరచడానికి అందించే ప్రోగ్రామ్ పరంగా కొంత షరతు చేయవచ్చు.
అందువల్ల, నేను మీకు ఒక ఉదాహరణ మాత్రమే చూపిస్తాను.
కాబట్టి, మీరు ఇక్కడ ఏమి చేస్తున్నారు, int i 0; ఆపై మీరు ++ నేను సమానమని చెప్తున్నారు.
ఈ పరిస్థితి సరైనదని నేను పట్టుబట్టాలని మేము చెప్తున్నాము.
కాబట్టి, ఈ పరిస్థితి నిజమైతే, అది ఏమీ చేయదు; ఈ పరిస్థితి తప్పు అయితే, ఇది ఒక మినహాయింపును లేవనెత్తుతుంది, అప్పుడు అది ఒక నిర్దిష్ట రకం విండోను విసిరి, నిష్క్రమించి, అది జరిగిందని మీకు తెలియజేస్తుంది.
కాబట్టి, మీరు నిజంగా ఈ ప్రోగ్రామ్ను నడుపుతుంటే ఏమి జరుగుతుందో చూపిస్తాను.
మేము ఈ ప్రోగ్రామ్ను రన్ చేస్తే, ఈ ప్రోగ్రామ్ను ఇక్కడ నడుపుతున్నప్పుడు, ఇది మీకు అంతగా కనిపించదు, కానీ ప్రోగ్రామ్ యొక్క మూలం ఏమిటి మరియు ఏ లైన్ అని మీరు నిజంగా చూడవచ్చు.
ఇది మీరు బహిరంగంగా మాట్లాడినట్లు మరియు బహిరంగంగా మాట్లాడటం యొక్క ఫలితం వాస్తవానికి గర్భస్రావం అని చెబుతోంది, కానీ ఇది ఒక ప్రోగ్రామ్లో వేర్వేరు పరిస్థితులను తనిఖీ చేయడానికి మీకు సహాయపడుతుంది మరియు తనిఖీ చేయండి, నేను ఇప్పుడు తిరిగి వెళ్ళాలి.
కాబట్టి, ఉపేక్ష నుండి తెలివితక్కువ కోడ్ ఉన్న చోట ఈ పరిస్థితి సంతృప్తికరంగా ఉందో లేదో తనిఖీ చేయడానికి ఇది మీకు సహాయపడుతుంది.
కాబట్టి, ఈ పరిస్థితి సంతృప్తికరంగా పరిగణించబడదు.
ఇప్పుడు, నిశ్చయత యొక్క ప్రయోజనం ఖచ్చితంగా ఉంది, మీరు వాటిని చాలా ప్రోగ్రామ్లోకి పెడితే, మీ తనిఖీలు జరుగుతూనే రన్ టైమ్లో చాలా ప్రదేశాలు ఉంటాయి మరియు ఇది ప్రోగ్రామ్ పనితీరుకు హానికరంగా మారుతుంది.
కాబట్టి, స్వరం మీకు ఇచ్చేది మానిఫెస్ట్ స్థిరాంకం మరియు డీబగ్.
కొన్ని కంపైలర్లలో, దీనిని డీబగ్ అంటారు; మరికొన్ని కంపైలర్లలో, దీనిని వేరే ఏదో అంటారు.
కాబట్టి, అదే జరిగితే మీరు డీబగ్ చేయడం లేదని అర్థం.
అందువల్ల, మీరు దానిని ఉంచినట్లయితే, అది స్వర లక్షణంలో ఉండదు.
కాబట్టి, నేను చేసిన డీబగ్ వెర్షన్ను మీరు చేస్తే, నేను దానిపై వ్యాఖ్యానించాను.
కాబట్టి, ఇది వాస్తవానికి డీబగ్ వెర్షన్ అని నేను చెప్తున్నాను.
కాబట్టి, దృడంగా ఉండండి.
నేను దానిని హుక్ చేస్తే, నేను మీకు చూపిస్తాను, నేను దానిని ఉంచినట్లయితే, నేను ఇప్పుడు దానిని విడుదల వెర్షన్గా చేసాను, ఇక్కడ ఈ స్వరం అక్కడ ఉండాలని నేను కోరుకోను, అది విఫలమవుతుంది మరియు ఇది అన్నింటికీ ఉంటుంది అది నిశ్చయంగా ఉండదు మరియు నాకు ఏదైనా నివేదిస్తుంది.
లేదా మరో మాటలో చెప్పాలంటే, ప్రాథమికంగా కంపైల్ సమయంలో ఈ వాదన బిల్డ్ కోడ్ (కోడ్) లో తొలగించబడుతుంది బిల్డ్ కోడ్ (కోడ్) వాస్తవానికి ఇది డీబగ్ ఆధారంగా ఉన్నందున దానిని క్లెయిమ్ చేయదు.
కాబట్టి, ఇది మీరు షరతులతో కూడిన ముగింపు చేయగల మరొక మార్గం మరియు మీరు మీ ప్రోగ్రామ్ను డీబగ్ చేస్తున్నప్పుడు చాలా ఉపయోగకరంగా ఉంటుంది.
మీలో చాలామందికి తెలియని చివరి లక్షణాన్ని నాన్-లోకల్ గోటో అంటారు.
దీని కోసం మీకు రెండు ఫంక్షన్ సెట్ జంప్ మరియు లాంగ్ జంప్తో ప్రామాణిక లైబ్రరీ హెడర్లో సెట్జంప్, సెట్జంప్.హెచ్ అనే రెండు ఫంక్షన్లు ఇవ్వబడతాయి.
మరియు ఇది పరామితిగా జంప్ బఫర్ తీసుకుంటుంది.
కాబట్టి, మీరు ప్రాథమికంగా చేసేది కోర్సు. స్థానిక గోటో మంచి వ్యవస్థ, అయితే మీరు స్వర గోటో యొక్క విధులను చేయలేరు ఎందుకంటే మీకు గోటో (గోటో) తెలుసు.) ఎల్లప్పుడూ ఫంక్షన్ పరిధికి పరిమితం.
కాబట్టి, నాన్-లోకల్ గోటో యొక్క సెట్ జంప్, లాంగ్ జంప్ మీకు ఒక యంత్రాంగాన్ని ఇస్తుంది, దీని ద్వారా మీరు పనుల సమయంలో దూకవచ్చు.
కాబట్టి, మీరు దీన్ని ఎలా వ్రాస్తారు.ఒక ఫంక్షన్ ఉందని అనుకుందాం, మరియు g మరొక ఫంక్షన్, మరియు ప్రాథమికంగా g కాల్స్.
కాబట్టి, మీరు చేసేది మీరు J బఫర్ అని పిలువబడే బఫర్ను నిర్వచించడం, మరియు ప్రోగ్రామ్ మిమ్మల్ని పిలుస్తున్న ఫంక్షన్లో, మీరు కొన్ని పూర్ణాంక కోడ్ (కోడ్) తో బఫర్తో లాంగ్ జంప్ ఇవ్వవచ్చు.
కాబట్టి, కాల్గర్ల్లో ఏమి జరుగుతుంది, మీరు సెట్ జంప్ అని చెప్పినట్లయితే, ఫంక్షన్ కంట్రోల్ తిరిగి వచ్చినప్పుడు, మీరు ఈ లాంగ్ జంప్ చేసినట్లయితే అది ఈ విలువతో తిరిగి వస్తుంది, ఇది బహుశా లోపం పరిస్థితి లేదా అది 0 తో తిరిగి వస్తుంది
అందువల్ల, మీరు 0 తో తిరిగి వస్తే, అది లోపం లేకుండా పోయిందని మీకు తెలుసు; ఇది 1 తో తిరిగి వస్తే, ఈ సమయంలో మీకు లోపం ఉందని మీకు తెలుసు.
ఇప్పుడు ఈ సంఖ్య 1 యొక్క ప్రాముఖ్యత ఖచ్చితంగా మీరు పిలిచే ఫంక్షన్లో చాలా ఉంటుంది.
నేను 2 తో వేరే పాయింట్ వద్ద అజ్ బఫ్ ఉంచగలను.
కాబట్టి, నేను ఈ సెట్ జంప్ చెక్తో కాలర్కు తిరిగి వచ్చినప్పుడు ఆ సమయం నుండి విఫలమైతే, నేను నిజంగా ఈ విలువను పొందుతాను. 2. కాబట్టి, ఇది 1 అని పిలువబడే కొన్ని పాయింట్, కొన్ని పాయింట్ను 2 అని పిలుస్తారు, కొన్ని పాయింట్ను 3 అని పిలుస్తారు మరియు డిఫాల్ట్ 0 అవుతుంది. కాబట్టి, నాకు సాధారణ ముగింపు ఉంటే, జంప్ను 0 కి సెట్ చేయండి.
సాధారణ అమలుతో కొనసాగగలుగుతారు, కాని నేను ఈ లోపం పాయింట్లతో నిష్క్రమించినట్లయితే, మీరు లాంగ్ జంప్ చేసిన దాని ఆధారంగా సెట్ జంప్కు సహేతుకమైన విలువ ఉంటుంది మరియు దాని ఆధారంగా మీరు ఇతర పదాలను వ్రాయవచ్చు.
ఉదాహరణకు, ఇక్కడ నేను కేవలం 1 తో చూపిస్తాను, కాబట్టి నాకు 1 ఉంది, కాబట్టి సెట్ జంప్ ఇక్కడకు వస్తే, అది సాధారణ సందర్భంలో 0 అవుతుంది; ఇది లాంగ్ జంప్ తీసుకుంటే, అది 1 తో వస్తుంది, కాబట్టి రెండవది సంతృప్తి చెందుతుంది, అక్కడ మీరు పరిస్థితి ఏమిటో తెలుసుకోవచ్చు.
అందువల్ల, మీరు దీనిని డైనమిక్స్ పరంగా మాత్రమే చూస్తే, దీనిని జి అని పిలుస్తారు.
అందువల్ల, సాధారణ స్థితిలో G విజయవంతంగా పూర్తయింది, అది అమలు చేయబడలేదు, అమలు చేయబడలేదు.
అందువల్ల, మీరు తిరిగి వస్తారు, మీరు ఇక్కడకు తిరిగి వస్తారు మరియు మీరు H కి తిరిగి రావడాన్ని కొనసాగించండి ఎందుకంటే ఇది G తర్వాత వెంటనే ఒక ప్రకటన.
బదులుగా మీరు g అని పిలిచినట్లయితే, మరియు మీరు g లో స్థానం సంభవించిన అటువంటి పరిస్థితిలో ఉన్నట్లయితే, మీరు లాంగ్ జంప్ 1 చేస్తారు, అప్పుడు మీరు కూడా తిరిగి వస్తారు.
మీరు లాంగ్ జంప్ చేసిన వెంటనే, మీరు నిజంగానే నియంత్రిస్తారు. ఇది వాస్తవానికి తిరిగి వస్తుంది. ఇది తిరిగి వెళ్ళడానికి వేచి ఉండదు, ఎందుకంటే ఇది మీరు ఎదుర్కొన్న ఒక రకమైన లోపం.
ఇది తిరిగి వస్తుంది, కానీ మీరు g ని పూర్తి చేయనందున అది h కి తిరిగి రాదు.
సెట్ జంప్ విలువ సెట్ జంప్ విలువ 1 ఇక్కడ ఉందో లేదో తనిఖీ చేస్తుంది.
కాబట్టి, ఈ పరిస్థితి విఫలమైంది, కాబట్టి ఇది మరొకదానికి తిరిగి వస్తుంది.
ఇక్కడ, మీరు జంప్ j బఫ్ను 1 కి సమానంగా సెట్ చేయగలిగితే, ఇంకేదో.
కాబట్టి, G ఏ నిర్దిష్ట పాయింట్ నుండి విఫలమైందో నిర్ణయించడానికి మీరు కాలింగ్ ఫంక్షన్కు మారగలరా అనే దానిపై ఆధారపడి ఉంటుంది.
అందువల్ల, ఇది అంతగా తెలియని యంత్రాంగం మరియు ఇది చాలా శుభ్రమైన యంత్రాంగం కాదని మనం చూస్తాము, ఫంక్షన్ యొక్క ఎన్ని పాయింట్లను తిరిగి ఇవ్వవచ్చో మనం గుర్తుంచుకోవాలి మరియు స్పష్టంగా, ప్రతిదీ ముందుగా రూపొందించినది.
త్వరలో.
ఇక్కడ నేను ఒక కోడ్ను ఇచ్చాను, మీరు పేస్ట్ను కాపీ చేసి, సెట్ జంపింగ్ జంప్ యొక్క ఈ ప్రవర్తనను ప్రయత్నించవచ్చు.
అలాగే, ఆపరేటింగ్ సిస్టమ్కి సంబంధించి ప్రజలు కొన్ని ప్రోగ్రామింగ్ చేశారని మీకు సంకేతాలు ఉన్నాయి, సిగ్నల్ పంపే విధానం ఉందని వారికి తెలుస్తుంది.
ఈ సిగ్నల్ డాట్ హెచ్ లో ఉందని మీరు ఒక సిగ్నల్ పంపవచ్చు మరియు అనుబంధిత హ్యాండ్లర్ ఉంది, ఇది మీరు చొప్పించగల మీ ఫంక్షన్ పాయింటర్.
అందువల్ల, సిగ్నల్ హ్యాండ్లర్లు అలాంటివి.
కాబట్టి, మీరు హ్యాండ్లర్ను నిర్వచించవచ్చు మరియు మీరు భిన్నంగా సూచించవచ్చు.
అలా చెప్పే వివిధ సిగ్నల్స్ కోసం మీరు వేర్వేరు హ్యాండ్లర్లను జోడించవచ్చు.
నేను SIGABRT కలిగి ఉంటే, అది అమలు చేయబడే ఈ ప్రత్యేకమైన సిగ్నల్ హ్యాండ్లర్, ఇన్వాయిస్ పొందండి, తద్వారా ప్రాథమిక సిగ్నలింగ్ విధానం ఉంటుంది మరియు మీరు ఆపివేయాలని నిర్ణయించుకోవచ్చు.
అందువల్ల, ఇది సి లో లభించే మరొక యంత్రాంగం.
అందువల్ల, సి నాకు అందించినట్లు మేము చూశాము, ఎందుకంటే సి రూపకల్పన రూపకల్పనలో మినహాయింపు యొక్క స్థితిని పరిగణనలోకి తీసుకోదు, లోపాలను పరిగణనలోకి తీసుకుంటుంది., ఇది ఎక్కువగా a ఆలోచన తర్వాత పోస్ట్.
కాబట్టి, ప్రామాణిక గ్రంథాలయాలు మరియు వాటి యొక్క వైవిధ్యాల ద్వారా అనేక రకాల యంత్రాంగాలు ప్లగ్ చేయబడ్డాయి, కానీ వాటిలో ఏవీ మీకు స్వచ్ఛమైన పరిష్కారాన్ని ఇవ్వవు మరియు ఇవి సి లో లోపం నిర్వహణ యొక్క కొన్ని సూక్ష్మ దృష్టాంతాలు.
మీరు హాజరైనప్పుడు, మీరు ప్రోగ్రామ్ నుండి నిష్క్రమించినప్పుడు, ప్రోగ్రామ్ను ముగించడానికి నిష్క్రమణ ఆధారంగా ఇప్పటికే స్కోప్ ఉంది, ప్రస్తుతం వివిధ స్థానిక స్కోప్లు నాలోని వస్తువులను నాశనం చేసేవారు నాశనం చేయబడరు, కాబట్టి ఇది మాకు ఉన్న ప్రధాన వనరుల లీకేజీ సమస్య.
రిటర్న్ వాల్యూ లేదా గ్లోబల్ ఫలితాలను చాలా కోడ్ అయోమయంతో ప్రశ్నించడం ఖచ్చితంగా అసహ్యకరమైనది, ఎందుకంటే ఇది సాధారణ ఫంక్షన్ సెమాంటిక్స్ను పాడు చేస్తుంది, ఎందుకంటే సాధారణ సెమాంటిక్స్ ఏమీ ఇవ్వదు.
కానీ లోపాన్ని దృష్టిలో ఉంచుకోవడానికి, మేము ఏదో ఒకటి ఉంచాలి మరియు ఈ స్థితిని ఖచ్చితంగా పొందాలి, మీరు హెడర్లో లోపాన్ని ఎలా నిర్వహిస్తారు, ఉదాహరణకు, మీరు పైభాగాన్ని గుర్తుంచుకుంటారు.
కాబట్టి, శీర్ష శీర్షం పూర్ణాంక స్టాక్గా భావించబడుతుంది, కాబట్టి శీర్షం మీకు పూర్ణాంకాన్ని తిరిగి ఇవ్వాలి.
అందువల్ల, ఇది ఫంక్షన్ సంతకం అయితే, మీకు లోపం విలువ లేనందున మీరు లోపాన్ని ఎలా తిరిగి ఇస్తారు.
అందువల్ల, మీరు పునరావృత కాల్లో ఉంటే జరగని అయోమయమైన గ్లోబల్ విలువను ఉపయోగించండి.
లేకపోతే, మీరు ఒక పరామితి గుండా వెళతారు, దీని ద్వారా మీరు వాస్తవానికి వంగని లోపం విలువను తిరిగి ఇస్తారు, ఇది మన వద్ద ఉన్న పద్ధతుల యొక్క అసలు సంతకాన్ని మారుస్తుంది.
మరియు అది లోపం లేని పరిస్థితులను భాష గ్రహించలేదు మరియు కోర్ యొక్క భాగం కాదు.
అందువల్ల, సి లోని లోపాన్ని పరిష్కరించడంలో ఇవి కొన్ని ప్రధాన ఇబ్బందులు. వివిధ దశలలో లోపంతో వ్యవహరించే మీరందరూ కొన్ని లేదా అన్ని పద్ధతులను ఉపయోగించారని నాకు ఖచ్చితంగా తెలుసు, అయితే నేను మిమ్మల్ని దీని ద్వారా తీసుకెళ్లాలని అనుకున్నాను, అయితే ఇవన్నీ హైలైట్ చేయాలనుకుంటున్నాను లోపం పరిస్థితులతో తీవ్రమైన పరిస్థితులు.
సంక్షిప్తంగా, మేము మినహాయింపులు, రకాలు మరియు దశల యొక్క ప్రాథమిక భావన యొక్క భావనను ప్రవేశపెట్టాము మరియు సి లో లోపం నిర్వహణ గురించి చర్చించాము.
మేము వివిధ భాషా లక్షణాలను వివరించాము మరియు వాటిలో చాలా వరకు కాదు, మరియు దీని కోసం సి లో ఉన్న లైబ్రరీ మద్దతు, మరియు మేము దానిని ఉదాహరణలతో ప్రదర్శిస్తాము.
తదుపరి మాడ్యూల్లో, మేము C ++ లోని మినహాయింపుల మూలాన్ని పొందుతాము.
కాలర్ f, కాలర్ g అని పిలిచారు మరియు మీరు విసిరారు, మీ మినహాయింపు వస్తువు ఏమిటి? మినహాయింపు వస్తువు మీరు h నుండి అందుకున్నది, నా మినహాయింపు వస్తువు.
కాలర్ f, కాలర్ g అని పిలిచారు మరియు మీరు విసిరారు, మీ మినహాయింపు వస్తువు ఏమిటి? మినహాయింపు వస్తువు మీరు h నుండి అందుకున్నది, నా మినహాయింపు వస్తువు.
కాబట్టి మీరు మినహాయింపు ద్వారా ఇక్కడకు వచ్చినప్పటి నుండి, మీరు క్యాచ్ క్లాజ్లో కొనసాగుతారు.
కాబట్టి మీరు మినహాయింపు ద్వారా ఇక్కడకు వచ్చినప్పటి నుండి, మీరు క్యాచ్ క్లాజ్లో కొనసాగుతారు.
కాబట్టి, ఇప్పుడు మీరు నా మినహాయింపు వస్తువును కలిగి ఉన్నారు మరియు మీకు నా మినహాయింపు క్యాచ్ నిబంధన ఉంది, కాబట్టి ఇది నా మినహాయింపును మరొక క్యాచ్ నిబంధనపై వదిలివేసి, ఆపై మీరు మిగిలిన ఫంక్షన్ను చేయవచ్చు మరియు కొనసాగించండి.
కాబట్టి, ఇప్పుడు మీరు నా మినహాయింపు వస్తువును కలిగి ఉన్నారు మరియు మీకు నా మినహాయింపు క్యాచ్ నిబంధన ఉంది, కాబట్టి ఇది నా మినహాయింపును మరొక క్యాచ్ నిబంధనపై వదిలివేసి, ఆపై మీరు మిగిలిన ఫంక్షన్ను చేయవచ్చు మరియు కొనసాగించండి.
.
అందువల్ల, మీరు విసిరిన మినహాయింపును కాలర్ నిర్వహించగలగడం అవసరం లేదు, కాలర్ దానిని నిర్వహించగలడు, కాలర్ దానిని నిర్వహించడానికి కాల్ చేయడానికి అధిక ప్రచారం చేయగలడు మరియు అది ఒక మినహాయింపును విసిరిందని మేము చెప్తాము.
అందువల్ల, మీరు విసిరిన మినహాయింపును కాలర్ నిర్వహించగలగడం అవసరం లేదు, కాలర్ దానిని నిర్వహించగలడు, కాలర్ దానిని నిర్వహించడానికి కాల్ చేయడానికి అధిక ప్రచారం చేయగలడు మరియు అది ఒక మినహాయింపును విసిరిందని మేము చెప్తాము.
ఇక్కడ మీకు ప్రత్యేకత ఏమిటి?
ఇక్కడ మీకు ప్రత్యేకత ఏమిటి?
నా మినహాయింపు స్పెషలైజేషన్ అయిన తరగతి మినహాయింపును వదిలివేస్తే ఏమి జరుగుతుందో చూద్దాం.
నా మినహాయింపు స్పెషలైజేషన్ అయిన తరగతి మినహాయింపును వదిలివేస్తే ఏమి జరుగుతుందో చూద్దాం.
...
@@ -186,5 +185,3 @@
...
@@ -186,5 +185,3 @@
వాస్తవానికి, మీరు C ++ లో త్రో త్రోతో సరిగ్గా రూపకల్పన చేయగలిగితే, మీకు C లో మినహాయింపు విధానం అవసరం లేదు.
వాస్తవానికి, మీరు C ++ లో త్రో త్రోతో సరిగ్గా రూపకల్పన చేయగలిగితే, మీకు C లో మినహాయింపు విధానం అవసరం లేదు.
కొన్ని సిస్టమ్ కాల్స్ సిగ్నల్ లేదా ఎర్రర్ నంబర్ను చొప్పించడం వంటి లోపం విధానాలను ఉపయోగిస్తున్నందున, మీరు ఇప్పటికీ వాటిని ఉపయోగించాల్సి ఉంటుంది.
కొన్ని సిస్టమ్ కాల్స్ సిగ్నల్ లేదా ఎర్రర్ నంబర్ను చొప్పించడం వంటి లోపం విధానాలను ఉపయోగిస్తున్నందున, మీరు ఇప్పటికీ వాటిని ఉపయోగించాల్సి ఉంటుంది.
కాబట్టి మీరు వాటిని ఇప్పటికీ ఆ సందర్భాలలో ఉపయోగించాల్సి ఉంటుంది, కానీ మీ స్వంత కోడ్ కోసం మీరు ఎప్పటికీ సి ఎర్రర్ హ్యాండ్లింగ్ లేదా సి లైబ్రరీ లైబ్రరీ ఫంక్షన్లను ఉపయోగించాల్సిన అవసరం లేదు.
కాబట్టి మీరు వాటిని ఇప్పటికీ ఆ సందర్భాలలో ఉపయోగించాల్సి ఉంటుంది, కానీ మీ స్వంత కోడ్ కోసం మీరు ఎప్పటికీ సి ఎర్రర్ హ్యాండ్లింగ్ లేదా సి లైబ్రరీ లైబ్రరీ ఫంక్షన్లను ఉపయోగించాల్సిన అవసరం లేదు.
వివిధ రకాల ఎక్స్టెన్షన్ లేదా ఎక్సెప్షన్ యొక్కఎన్కాప్సులేషన్ అనుగుణంగా ఉండే ఇతర లక్షణాల గురించి మనం మాట్లాడాము, ఫ్రెండ్ ఫంక్షన్ పరంగా, ఫంక్షన్ యాక్సెస్ మరియు స్టాక్ ఫంక్షన్ల పరంగా ఫంక్షన్స్, మరియు వివిధ మెంబర్ ఫంక్షన్ మరియు గ్లోబల్ ఫంక్షన్ల ఓవర్లోడింగ్ చేయవచ్చు.
వివిధ రకాల ఎక్స్టెన్షన్ లేదా ఎక్సెప్షన్ యొక్కఎన్కాప్సులేషన్ అనుగుణంగా ఉండే ఇతర లక్షణాల గురించి మనం మాట్లాడాము, ఫ్రెండ్ ఫంక్షన్ పరంగా, ఫంక్షన్ యాక్సెస్ మరియు స్టాక్ ఫంక్షన్ల పరంగా ఫంక్షన్స్, మరియు వివిధ మెంబర్ ఫంక్షన్ మరియు గ్లోబల్ ఫంక్షన్ల ఓవర్లోడింగ్ చేయవచ్చు.
ఇప్పుడు, ఇన్హెరిటెన్స్ అనేది ఆబ్జెక్ట్ యొక్క ఆధార రూపకల్పనల డిజైన్ యొక్క ప్రధాన వెన్నెముకను నిర్మించడానికి ఈ అవగాహనను అన్నిటినీ మిళితం చేస్తుంది.
ఇప్పుడు, ఇన్హెరిటెన్స్ అనేది ఆబ్జెక్ట్ యొక్క ఆధార రూపకల్పనల డిజైన్ యొక్క ప్రధాన వెన్నెముకను నిర్మించడానికి ఈ అవగాహనను అన్నిటినీ మిళితం చేస్తుంది.
అందువలన, మనము ఈ లోతైన అధ్యయనం మొదలు ముందు నేను అన్ని మీరు సవరించడానికి మరియు మేము చాలా చర్చించారు అని C + + యొక్క వివిధ లక్షణాల గురించి చాలా క్షుణ్ణంగా ఉద్భవించటానికి ముందు మేము ఇప్పుడు చాలా తరచుగా క్రమంగా వాటిని అన్ని సూచిస్తూ ఉంటాను .
అందువలన, మనము ఈ లోతైన అధ్యయనం మొదలు ముందు నేను అన్ని మీరు సవరించడానికి మరియు మేము చాలా చర్చించారు అని C + + యొక్క వివిధ లక్షణాల గురించి చాలా క్షుణ్ణంగా ఉద్భవించటానికి ముందు మేము ఇప్పుడు చాలా తరచుగా క్రమంగా వాటిని అన్ని సూచిస్తూ ఉంటాను .
ఇప్పుడు, నేను చెప్పినట్లుగా ఇన్హెరిటెన్స్ గురించి చర్చించడం కోసం ఇది అనేక మాడ్యూల్స్పై విస్తరించింది.
ఇప్పుడు, నేను చెప్పినట్లుగా ఇన్హెరిటెన్స్ గురించి చర్చించడం కోసం ఇది అనేక మాడ్యూల్స్పై విస్తరించింది.
ఈ ప్రత్యేక మాడ్యూల్ లో, ISA రిలేషన్షిప్ లేదా ఆబ్జెక్ట్ ఓరియెంటెడ్ అనాలిసిస్ అండ్ డిజైన్ యొక్క క్రమానుగత పునఃసృష్టిని మేము పరిశీలించాము మరియు C ++ ఇన్హెరిటెన్స్ పరంగా ఎలా క్రియేట్ చేయాలో చూద్దాం.
ఈ ప్రత్యేక మాడ్యూల్ లో, ISA రిలేషన్షిప్ లేదా ఆబ్జెక్ట్ ఓరియెంటెడ్ అనాలిసిస్ అండ్ డిజైన్ యొక్క క్రమానుగత పునఃసృష్టిని మేము పరిశీలించాము మరియు C ++ ఇన్హెరిటెన్స్ పరంగా ఎలా క్రియేట్ చేయాలో చూద్దాం.
నేను ఇక్కడ అందించే ఆకారం కొద్దిగా భిన్నంగా నిర్వహించబడింది.
నేను ఇక్కడ అందించే ఆకారం కొద్దిగా భిన్నంగా నిర్వహించబడింది.
...
@@ -115,5 +114,3 @@
...
@@ -115,5 +114,3 @@
కాబట్టి, ఇది ఇన్హెరిటెన్స్ ను ఎలా ఉపయోగించాలో అర్ధం చేసుకోవడానికి మరియు C ++ ల్యాంగ్వేజ్ చాలా సమర్థవంతమైన రీతిలో వేర్వేరు వాస్తవ ప్రపంచ scenario hierarchy ను ఎలా నిర్దేశించాలో అర్థం చేసుకోవడానికి అవసరమైన అన్ని ప్రధాన అర్థాల సిమాంటిక్స్(semantics) ఇది.
కాబట్టి, ఇది ఇన్హెరిటెన్స్ ను ఎలా ఉపయోగించాలో అర్ధం చేసుకోవడానికి మరియు C ++ ల్యాంగ్వేజ్ చాలా సమర్థవంతమైన రీతిలో వేర్వేరు వాస్తవ ప్రపంచ scenario hierarchy ను ఎలా నిర్దేశించాలో అర్థం చేసుకోవడానికి అవసరమైన అన్ని ప్రధాన అర్థాల సిమాంటిక్స్(semantics) ఇది.
ఈ విధంగా సంగ్రహించేందుకు, మనకు OOAD hierarchy యొక్క శ్రేణిని ISA సంబంధం మరియు క్లాస్ హైరార్కీ భావన ఆబ్జెక్ట్ ఓరియంటెడ్ అనాలిసిస్ అండ్ డిజైన్ యొక్క పునర్వ్యవస్థీకరణలో ఉంది మరియు C ++ లో ఇన్హెరిటెన్స్ యొక్క ప్రాథమిక భావనను పరిచయం చేసాము.
ఈ విధంగా సంగ్రహించేందుకు, మనకు OOAD hierarchy యొక్క శ్రేణిని ISA సంబంధం మరియు క్లాస్ హైరార్కీ భావన ఆబ్జెక్ట్ ఓరియంటెడ్ అనాలిసిస్ అండ్ డిజైన్ యొక్క పునర్వ్యవస్థీకరణలో ఉంది మరియు C ++ లో ఇన్హెరిటెన్స్ యొక్క ప్రాథమిక భావనను పరిచయం చేసాము.
మరియు అర్థం చేసుకోవడానికి అవసరమైన అర్థాల యొక్క విభిన్న అంశాలను ఏవి గమనించాలో, మేము నిజంగా ప్రభావవంతమైన పద్ధతిలో ఇన్హెరిటెన్స్ ని ఉపయోగించుకునే విధంగా మాస్టర్స్గా ఉండాలి.
మరియు అర్థం చేసుకోవడానికి అవసరమైన అర్థాల యొక్క విభిన్న అంశాలను ఏవి గమనించాలో, మేము నిజంగా ప్రభావవంతమైన పద్ధతిలో ఇన్హెరిటెన్స్ ని ఉపయోగించుకునే విధంగా మాస్టర్స్గా ఉండాలి.
బేస్ క్లాస్ ఆబ్జెక్ట్ తక్కువ చిరునామాకు చేరుకుంటుందని మరియు ఉత్పన్నమైన క్లాస్ యొక్క డేటా సభ్యులు అధిక చిరునామా వద్ద ఉంటారని లేదా దీనికి విరుద్ధంగా లేదా ఇతర మిశ్రమంలో ఉంటారని హామీ లేదు.
బేస్ క్లాస్ ఆబ్జెక్ట్ తక్కువ చిరునామాకు చేరుకుంటుందని మరియు ఉత్పన్నమైన క్లాస్ యొక్క డేటా సభ్యులు అధిక చిరునామా వద్ద ఉంటారని లేదా దీనికి విరుద్ధంగా లేదా ఇతర మిశ్రమంలో ఉంటారని హామీ లేదు.
మరియు వారసత్వ పరంగా, సభ్యుల విధులు ఒక తరగతి నుండి ఉద్భవించిన వారసత్వంలోని ఒక బేస్ తరగతి నుండి ఉద్భవించాయని మేము చూశాము, కానీ వారసత్వం తరువాత చాలా ఆసక్తికరంగా ఉంటుంది. సభ్యుల విధులను భర్తీ చేయవచ్చు.
మరియు వారసత్వ పరంగా, సభ్యుల విధులు ఒక తరగతి నుండి ఉద్భవించిన వారసత్వంలోని ఒక బేస్ తరగతి నుండి ఉద్భవించాయని మేము చూశాము, కానీ వారసత్వం తరువాత చాలా ఆసక్తికరంగా ఉంటుంది. సభ్యుల విధులను భర్తీ చేయవచ్చు.
మరియు ఆ సందర్భంలో, ఓవర్లోడింగ్ యొక్క ప్రాథమిక నియమాలు కూడా పని చేస్తూనే ఉంటాయి.
మరియు ఆ సందర్భంలో, ఓవర్లోడింగ్ యొక్క ప్రాథమిక నియమాలు కూడా పని చేస్తూనే ఉంటాయి.
కాబట్టి, మీరు నిజంగా వీడియో కాల్స్ చేయగలరు మరియు తరువాత మేము చూసిన మొబైల్ ఫోన్ల యొక్క స్పెషలైజేషన్గా మీకు స్మార్ట్ ఫోన్లు ఉన్నాయి, కాని అవి ఐ-ఫోన్ లేదా ఆండ్రాయిడ్ ఫోన్ నుండి వచ్చాయా లేదా నేను కొంత రకాన్ని పొందవచ్చా అనే దానిపై అవి మళ్లీ నిర్దిష్టంగా ఉన్నాయి. టాబ్లెట్ ఫోన్ను స్మార్ట్ ఫోన్గా, వీడియో ఫోన్గా ఉపయోగించవచ్చు.
కాబట్టి, మీరు నిజంగా వీడియో కాల్స్ చేయగలరు మరియు తరువాత మేము చూసిన మొబైల్ ఫోన్ల యొక్క స్పెషలైజేషన్గా మీకు స్మార్ట్ ఫోన్లు ఉన్నాయి, కాని అవి ఐ-ఫోన్ లేదా ఆండ్రాయిడ్ ఫోన్ నుండి వచ్చాయా లేదా నేను కొంత రకాన్ని పొందవచ్చా అనే దానిపై అవి మళ్లీ నిర్దిష్టంగా ఉన్నాయి. టాబ్లెట్ ఫోన్ను స్మార్ట్ ఫోన్గా, వీడియో ఫోన్గా ఉపయోగించవచ్చు.
అందువల్ల, ఈ సోపానక్రమం (సోపానక్రమం) ఆధారంగా మనం ఇంట్లో ప్రయత్నించవచ్చు మరియు ఈ సోపానక్రమం (సోపానక్రమం) లో భాగమైన C ++ వారసత్వ తరగతుల (క్రమానుగత) సమితిని నిర్మించడానికి ప్రయత్నించవచ్చని నేను సూచిస్తున్నాను.
అందువల్ల, ఈ సోపానక్రమం (సోపానక్రమం) ఆధారంగా మనం ఇంట్లో ప్రయత్నించవచ్చు మరియు ఈ సోపానక్రమం (సోపానక్రమం) లో భాగమైన C ++ వారసత్వ తరగతుల (క్రమానుగత) సమితిని నిర్మించడానికి ప్రయత్నించవచ్చని నేను సూచిస్తున్నాను.
కాబట్టి, క్లుప్తంగా, వాస్తవ పరిస్థితుల కోసం సమర్థవంతమైన C ++ కోడ్ మోడల్ను రూపొందించడానికి వారసత్వం ఎలా ఉపయోగపడుతుందో ఇక్కడ చూపించడానికి మేము ఫోన్ సోపానక్రమం (సోపానక్రమం) ను ఉపయోగించవచ్చు.
కాబట్టి, క్లుప్తంగా, వాస్తవ పరిస్థితుల కోసం సమర్థవంతమైన C ++ కోడ్ మోడల్ను రూపొందించడానికి వారసత్వం ఎలా ఉపయోగపడుతుందో ఇక్కడ చూపించడానికి మేము ఫోన్ సోపానక్రమం (సోపానక్రమం) ను ఉపయోగించవచ్చు.
ఇప్పుడు, మేము మరికొన్ని ఇంటిగ్రేటెడ్ వినియోగ దృశ్యాలను పరిశీలిస్తాము మరియు మనకు విద్యార్థి ఉపాధ్యాయుడు టిఎ దృష్టాంతం ఉందని చూపిస్తాము, ఇక్కడ టిఎ విద్యార్థి, టిఎ ఒక ఉపాధ్యాయుడు మరియు ఇద్దరూ వ్యక్తులు.
ఇప్పుడు, మేము మరికొన్ని ఇంటిగ్రేటెడ్ వినియోగ దృశ్యాలను పరిశీలిస్తాము మరియు మనకు విద్యార్థి ఉపాధ్యాయుడు టిఎ దృష్టాంతం ఉందని చూపిస్తాము, ఇక్కడ టిఎ విద్యార్థి, టిఎ ఒక ఉపాధ్యాయుడు మరియు ఇద్దరూ వ్యక్తులు.
అందువల్ల, మనకు వజ్రం లాంటి పరిస్థితి ఉంది మరియు మేము దీనిని డైమండ్ సమస్య అని పిలవండి, దాన్ని ఎందుకు డైమండ్ సమస్య అని పిలుస్తామో చూద్దాం.
అందువల్ల, మనకు వజ్రం లాంటి పరిస్థితి ఉంది మరియు మేము దీనిని డైమండ్ సమస్య అని పిలవండి, దాన్ని ఎందుకు డైమండ్ సమస్య అని పిలుస్తామో చూద్దాం.
బహుళ వారసత్వంలో కనిపించే తరగతి యొక్క ప్రాథమిక తరగతుల కోసం మీకు సాధారణ బేస్ క్లాస్ ఉండడం చాలా సాధారణమని నేను ఇప్పటికే వివరించాను.
బహుళ వారసత్వంలో కనిపించే తరగతి యొక్క ప్రాథమిక తరగతుల కోసం మీకు సాధారణ బేస్ క్లాస్ ఉండడం చాలా సాధారణమని నేను ఇప్పటికే వివరించాను.
కాబట్టి, కోడ్ వ్యక్తిని చూడటానికి ప్రయత్నిద్దాం, ఇది ఒక తరగతి, ఇక్కడ నేను దానిని ఫ్యాకల్టీ అని పిలిచాను, ఉదాహరణలో నేను దానిని ఫ్యాకల్టీ అని పిలిచాను, అంటే ఉపాధ్యాయుడు ఒక తరగతి విద్యార్థి అని అర్ధం.) కాబట్టి వారు వారసత్వంగా ఒక వ్యక్తిని కలుస్తారు .
కాబట్టి, కోడ్ వ్యక్తిని చూడటానికి ప్రయత్నిద్దాం, ఇది ఒక తరగతి, ఇక్కడ నేను దానిని ఫ్యాకల్టీ అని పిలిచాను, ఉదాహరణలో నేను దానిని ఫ్యాకల్టీ అని పిలిచాను, అంటే ఉపాధ్యాయుడు ఒక తరగతి విద్యార్థి అని అర్ధం. కాబట్టి వారు వారసత్వంగా ఒక వ్యక్తిని కలుస్తారు .
కాబట్టి, ఆపై TA అధ్యాపకులు మరియు విద్యార్థి రెండింటి నుండి వారసత్వంగా పొందారు, కాబట్టి ఇది దృష్టాంతం.
కాబట్టి, ఆపై TA అధ్యాపకులు మరియు విద్యార్థి రెండింటి నుండి వారసత్వంగా పొందారు, కాబట్టి ఇది దృష్టాంతం.
మరియు ప్రతి బిల్డర్కు బిల్డ్లో ఏమి జరుగుతుందో చూడటానికి సందేశం ఉంది.
మరియు ప్రతి బిల్డర్కు బిల్డ్లో ఏమి జరుగుతుందో చూడటానికి సందేశం ఉంది.
అందువల్ల, నిర్మాణం ఖచ్చితంగా బేస్ క్లాస్ని నిర్మించాలి.
అందువల్ల, నిర్మాణం ఖచ్చితంగా బేస్ క్లాస్ని నిర్మించాలి.
...
@@ -111,5 +111,3 @@
...
@@ -111,5 +111,3 @@
చివరకు, వారసత్వ ఉపయోగం మధ్య డిజైన్ ఎంపిక గురించి మీకు కొంత ఆలోచన ఇవ్వడానికి ప్రయత్నించండి, ఎందుకంటే దృశ్య నిర్మాణం మరియు నిర్మాణం యొక్క ఒక వ్యవస్థ మాత్రమే వారసత్వం మరియు నిర్మాణం యొక్క మిశ్రమాన్ని సృష్టిస్తుంది మరియు ఒక ప్రధాన పాలిమార్ఫిక్ వస్తువు యొక్క ప్రధాన సోపానక్రమంపై నిర్ణయిస్తుంది ప్రాతినిధ్యం.
చివరకు, వారసత్వ ఉపయోగం మధ్య డిజైన్ ఎంపిక గురించి మీకు కొంత ఆలోచన ఇవ్వడానికి ప్రయత్నించండి, ఎందుకంటే దృశ్య నిర్మాణం మరియు నిర్మాణం యొక్క ఒక వ్యవస్థ మాత్రమే వారసత్వం మరియు నిర్మాణం యొక్క మిశ్రమాన్ని సృష్టిస్తుంది మరియు ఒక ప్రధాన పాలిమార్ఫిక్ వస్తువు యొక్క ప్రధాన సోపానక్రమంపై నిర్ణయిస్తుంది ప్రాతినిధ్యం.
వస్తువుల.
వస్తువుల.
మరియు సందర్భానుసారంగా ఇతరుల సృష్టిని ఉపయోగించడం మరియు తదనుగుణంగా వారి పాలిమార్ఫిక్ను పంపించడం.
మరియు సందర్భానుసారంగా ఇతరుల సృష్టిని ఉపయోగించడం మరియు తదనుగుణంగా వారి పాలిమార్ఫిక్ను పంపించడం.
మీరు సందేశాన్ని బేస్ క్లాస్ కన్స్ట్రక్టర్ మరియు కన్స్ట్రక్టర్లలో మరియు ఉత్పన్నమైన క్లాస్ కన్స్ట్రక్టర్ కన్స్ట్రక్టర్ డిస్ట్రక్టర్లో ఉంచితే, మొదటి బేస్ క్లాస్ 1 సృష్టించబడిందని మీరు చూస్తారు ఎందుకంటే ఇది జాబితాలో మొదటిది, అప్పుడు బేస్ క్లాస్ 2 ఎందుకంటే ఇది జాబితాలో రెండవది, ఆపై ఉత్పన్నమైన తరగతి యొక్క సృష్టి మరియు విధ్వంసం సరిగ్గా రివర్స్ క్రమంలో జరుగుతుంది.
మీరు సందేశాన్ని బేస్ క్లాస్ కన్స్ట్రక్టర్ మరియు కన్స్ట్రక్టర్లలో మరియు ఉత్పన్నమైన క్లాస్ కన్స్ట్రక్టర్ కన్స్ట్రక్టర్ డిస్ట్రక్టర్లో ఉంచితే, మొదటి బేస్ క్లాస్ 1 సృష్టించబడిందని మీరు చూస్తారు ఎందుకంటే ఇది జాబితాలో మొదటిది, అప్పుడు బేస్ క్లాస్ 2 ఎందుకంటే ఇది జాబితాలో రెండవది, ఆపై ఉత్పన్నమైన తరగతి యొక్క సృష్టి మరియు విధ్వంసం సరిగ్గా రివర్స్ క్రమంలో జరుగుతుంది.
ఇది వారసత్వం యొక్క ప్రాథమిక విధానం, ఇది ఒక నిర్దిష్ట ఉత్పన్న తరగతి సమస్యకు బేస్ క్లాస్ యొక్క అనేక కేసులను సూచిస్తుంది.
ఇది వారసత్వం యొక్క ప్రాథమిక విధానం, ఇది ఒక నిర్దిష్ట ఉత్పన్న తరగతి సమస్యకు బేస్ క్లాస్ యొక్క అనేక కేసులను సూచిస్తుంది.
ఉదాహరణకు, మీరు ఇతరులతో పంచుకోవాలనుకునే లైబ్రరీని అభివృద్ధి చేస్తుంటే, ఆ మొత్తం విషయానికి అర్ధవంతమైన నేమ్స్పేస్ అని పేరు పెట్టడం మంచిది మరియు నేమ్స్పేస్ (నేమ్స్పేస్) ఆ మొత్తం అభివృద్ధిని లోపల ఉంచండి, ప్రామాణిక లైబ్రరీ వంటివి std ఉపయోగించి .
ఉదాహరణకు, మీరు ఇతరులతో పంచుకోవాలనుకునే లైబ్రరీని అభివృద్ధి చేస్తుంటే, ఆ మొత్తం విషయానికి అర్ధవంతమైన నేమ్స్పేస్ అని పేరు పెట్టడం మంచిది మరియు నేమ్స్పేస్ (నేమ్స్పేస్) ఆ మొత్తం అభివృద్ధిని లోపల ఉంచండి, ప్రామాణిక లైబ్రరీ వంటివి std ఉపయోగించి .
ఆపై దానిని వినియోగదారుకు ఇవ్వండి, తద్వారా మీరు మీ లైబ్రరీలో కొన్ని ఫంక్షన్ పేర్లు లేదా తరగతి పేర్లను ఉపయోగించినట్లు చెప్పలేము, ఇది వినియోగదారు కూడా ఉపయోగించాలనుకుంటుంది, కానీ చేయలేకపోతుంది.
ఆపై దానిని వినియోగదారుకు ఇవ్వండి, తద్వారా మీరు మీ లైబ్రరీలో కొన్ని ఫంక్షన్ పేర్లు లేదా తరగతి పేర్లను ఉపయోగించినట్లు చెప్పలేము, ఇది వినియోగదారు కూడా ఉపయోగించాలనుకుంటుంది, కానీ చేయలేకపోతుంది.
కాబట్టి, ఇది నేమ్స్పేస్ల గురించి మరియు మేము ఇక్కడ మూసివేస్తాము.
కాబట్టి, ఇది నేమ్స్పేస్ల గురించి మరియు మేము ఇక్కడ మూసివేస్తాము.
దీనితో మేము ఈ మాడ్యూల్కు దగ్గరగా వస్తాము, ఇక్కడ, మేము ఆపరేటర్ను ఓవర్లోడింగ్కు పరిచయం చేసాము మరియు ఆపరేటర్ ఓవర్లోడింగ్ కోసం వివిధ నియమాలు మరియు మినహాయింపులను వివరించాము.
దీనితో మేము ఈ మాడ్యూల్కు దగ్గరగా వస్తాము, ఇక్కడ, మేము ఆపరేటర్ను ఓవర్లోడింగ్కు పరిచయం చేసాము మరియు ఆపరేటర్ ఓవర్లోడింగ్ కోసం వివిధ నియమాలు మరియు మినహాయింపులను వివరించాము.
మరియు తరువాతి మాడ్యూల్లో, మాడ్యూల్ 10 లో, డైనమిక్ మెమరీ నిర్వహణ పరంగా మరొక ప్రత్యేక విస్తరణ కేసు మరియు ఆపరేటర్ ఓవర్లోడ్ యొక్క ప్రత్యేక కేసును చూపిస్తాము.
మరియు తరువాతి మాడ్యూల్లో, మాడ్యూల్ 10 లో, డైనమిక్ మెమరీ నిర్వహణ పరంగా మరొక ప్రత్యేక విస్తరణ కేసు మరియు ఆపరేటర్ ఓవర్లోడ్ యొక్క ప్రత్యేక కేసును చూపిస్తాము.
మేము C ++ డైనమిక్ మెమరీ నిర్వహణ కోసం అందించే ఆపరేటర్లను పరిచయం చేస్తాము మరియు డైనమిక్ మెమరీ మేనేజ్మెంట్ ఆపరేటర్ల సందర్భంలో ఆపరేటర్ ఓవర్లోడింగ్ ఎలా అమలు చేయవచ్చో మేము మళ్ళీ చూపిస్తాము, C ++ లో మెమరీ నిర్వహణలో పలు రకాల బలమైన ప్రయోజనాలను చూడండి.
మేము C ++ డైనమిక్ మెమరీ నిర్వహణ కోసం అందించే ఆపరేటర్లను పరిచయం చేస్తాము మరియు డైనమిక్ మెమరీ మేనేజ్మెంట్ ఆపరేటర్ల సందర్భంలో ఆపరేటర్ ఓవర్లోడింగ్ ఎలా అమలు చేయవచ్చో మేము మళ్ళీ చూపిస్తాము, C ++ లో మెమరీ నిర్వహణలో పలు రకాల బలమైన ప్రయోజనాలను చూడండి.
ఆపరేటర్లను ఓవర్లోడ్ చేయడం ఎందుకు ముఖ్యమో మేము వివరించాము మరియు గ్లోబల్ ఫంక్షన్లు మరియు క్లాసుల సభ్యుల ఫంక్షన్లను ఉపయోగించి ఆపరేటర్ల ఓవర్లోడ్ యొక్క మూలాన్ని వివరించాము. పద్ధతి వివరించబడింది.
ఆపరేటర్లను ఓవర్లోడ్ చేయడం ఎందుకు ముఖ్యమో మేము వివరించాము మరియు గ్లోబల్ ఫంక్షన్లు మరియు క్లాసుల సభ్యుల ఫంక్షన్లను ఉపయోగించి ఆపరేటర్ల ఓవర్లోడ్ యొక్క మూలాన్ని వివరించాము. పద్ధతి వివరించబడింది.
ఈ ప్రక్రియలో, ఓవర్లోడ్ కోసం మీరు ఫ్రెండ్ ఫంక్షన్ను ఉపయోగించవచ్చని కూడా మేము చూశాము, ఇది మేము తదుపరి మాడ్యూల్లో చేస్తాము.
ఈ ప్రక్రియలో, ఓవర్లోడ్ కోసం మీరు ఫ్రెండ్ ఫంక్షన్ను ఉపయోగించవచ్చని కూడా మేము చూశాము, ఇది మేము తదుపరి మాడ్యూల్లో చేస్తాము.
ఈ మాడ్యూల్లో, మొత్తం బైనరీ మరియు బైనరీయేతర ఆపరేటర్లకు ఓవర్లోడింగ్ యొక్క ప్రాథమిక సెమాంటిక్స్ యొక్క రూపురేఖలు ఉన్నాయి.
ఈ మాడ్యూల్లో, మొత్తం బైనరీ మరియు బైనరీయేతర ఆపరేటర్లకు ఓవర్లోడింగ్ యొక్క ప్రాథమిక సెమాంటిక్స్ యొక్క రూపురేఖలు ఉన్నాయి.
ఉదాహరణకు, ఇంటెంట్ (పూర్ణాంకానికి) రకానికి మద్దతు ఇచ్చే అన్ని ఆపరేటర్లకు పూర్తిగా మద్దతిచ్చే సంక్లిష్ట రకాన్ని నిర్మించడానికి ప్రయత్నించడం మంచి వ్యాయామం, మరికొన్ని ఆపరేటర్లను కలిగి ఉండటం నిజంగా క్లిష్టంగా ఉంటుంది.మీరు సంపూర్ణ విలువను కనుగొనవలసి ఉంటుంది సంఖ్య వంటి సంక్లిష్ట సంఖ్య, సంక్లిష్ట సంఖ్య యొక్క విలువ, మీరు సంక్లిష్ట సంఖ్య యొక్క సంక్లిష్ట సంయోగాన్ని కనుగొనాలి.
ఉదాహరణకు, ఇంటెంట్ (పూర్ణాంకానికి) రకానికి మద్దతు ఇచ్చే అన్ని ఆపరేటర్లకు పూర్తిగా మద్దతిచ్చే సంక్లిష్ట రకాన్ని నిర్మించడానికి ప్రయత్నించడం మంచి వ్యాయామం, మరికొన్ని ఆపరేటర్లను కలిగి ఉండటం నిజంగా క్లిష్టంగా ఉంటుంది.మీరు సంపూర్ణ విలువను కనుగొనవలసి ఉంటుంది సంఖ్య వంటి సంక్లిష్ట సంఖ్య, సంక్లిష్ట సంఖ్య యొక్క విలువ, మీరు సంక్లిష్ట సంఖ్య యొక్క సంక్లిష్ట సంయోగాన్ని కనుగొనాలి.
అందువల్ల, మీరు తగిన ఆపరేటర్లను గుర్తించి, వాటిని ఓవర్లోడ్ చేయాలి.
అందువల్ల, మీరు తగిన ఆపరేటర్లను గుర్తించి, వాటిని ఓవర్లోడ్ చేయాలి.
మరియు ఆ ప్రక్రియలో మీరు పూర్తిగా సంక్లిష్టమైన రకాన్ని కలిగి ఉండాలి, అది మీ పూర్ణాంక (పూర్ణాంక) రకానికి సమానంగా ప్రవర్తిస్తుంది మరియు మీరు మీ సంక్లిష్ట రకం విలువలను మరియు వేరియబుల్స్ యొక్క వ్యక్తీకరణలను వ్రాయగలుగుతారు. తేడా రకం.
మరియు ఆ ప్రక్రియలో మీరు పూర్తిగా సంక్లిష్టమైన రకాన్ని కలిగి ఉండాలి, అది మీ పూర్ణాంక (పూర్ణాంక) రకానికి సమానంగా ప్రవర్తిస్తుంది మరియు మీరు మీ సంక్లిష్ట రకం విలువలను మరియు వేరియబుల్స్ యొక్క వ్యక్తీకరణలను వ్రాయగలుగుతారు. తేడా రకం.
కాబట్టి ఈ మాడ్యూల్లో, సి మరియు సి ++ మధ్య ప్రాథమిక వ్యత్యాసాన్ని అర్థం చేసుకోవడానికి ప్రయత్నించాము; మీరు ఇన్పుట్ను ఎలా అవుట్పుట్ చేస్తారు? మీరు వేరియబుల్ ఎలా ప్రకటిస్తారు? C ++ లో C మరియు C ++ యొక్క ప్రామాణిక లైబ్రరీ ఎలా ఉపయోగించబడుతుంది? C ++ మనకు ఎలా ప్రకటించగలదో మరియు ఎలా అవుట్పుట్ చేయగలదో మాకు మరింత సౌలభ్యాన్ని ఇస్తుందని చూడటం ప్రారంభించాము.
కాబట్టి ఈ మాడ్యూల్లో, సి మరియు సి ++ మధ్య ప్రాథమిక వ్యత్యాసాన్ని అర్థం చేసుకోవడానికి ప్రయత్నించాము; మీరు ఇన్పుట్ను ఎలా అవుట్పుట్ చేస్తారు? మీరు వేరియబుల్ ఎలా ప్రకటిస్తారు? C ++ లో C మరియు C ++ యొక్క ప్రామాణిక లైబ్రరీ ఎలా ఉపయోగించబడుతుంది? C ++ మనకు ఎలా ప్రకటించగలదో మరియు ఎలా అవుట్పుట్ చేయగలదో మాకు మరింత సౌలభ్యాన్ని ఇస్తుందని చూడటం ప్రారంభించాము.
ఇప్పుడు, ఆ సంక్లిష్టమైన printf స్టేట్మెంట్లు, ఫార్మాట్లు వేర్వేరు తీగలలో ఉన్న స్ట్రీమ్ ప్రింట్ ఎఫ్ (ప్రింట్ ఎఫ్) ఫంక్షన్ (ఫంక్షన్) కాల్స్ మాకు అవసరం లేదు, వేరియబుల్స్ విడిగా జాబితా చేయబడతాయి.
ఇప్పుడు, ఆ సంక్లిష్టమైన printf స్టేట్మెంట్లు, ఫార్మాట్లు వేర్వేరు తీగలలో ఉన్న స్ట్రీమ్ ప్రింట్ ఎఫ్ (ప్రింట్ ఎఫ్) ఫంక్షన్ (ఫంక్షన్) కాల్స్ మాకు అవసరం లేదు, వేరియబుల్స్ విడిగా జాబితా చేయబడతాయి.
స్కాన్ఫ్కు వేరియబుల్స్ మరియు సారూప్య చిరునామాలు అవసరమని మనం గుర్తుంచుకోవాల్సిన అవసరం లేదు మరియు ఈ విధంగా సి ++ లో చాలా నిర్మాణాలు మరియు విధులు సరళీకృతం చేయబడ్డాయి, ఇవి ప్రోగ్రామింగ్ను పెంచడానికి సహాయపడతాయి.
స్కాన్ఫ్కు వేరియబుల్స్ మరియు సారూప్య చిరునామాలు అవసరమని మనం గుర్తుంచుకోవాల్సిన అవసరం లేదు మరియు ఈ విధంగా సి ++ లో చాలా నిర్మాణాలు మరియు విధులు సరళీకృతం చేయబడ్డాయి, ఇవి ప్రోగ్రామింగ్ను పెంచడానికి సహాయపడతాయి.
కానీ, ఈ మాడ్యూల్తో ఇది సి స్థాయి అని మేము ఆశించాము, మీరు సి ++ భాషా శిక్షణతో ముందుకు సాగడానికి సిద్ధంగా ఉన్నారు.
కానీ, ఈ మాడ్యూల్తో ఇది సి స్థాయి అని మేము ఆశించాము, మీరు సి ++ భాషా శిక్షణతో ముందుకు సాగడానికి సిద్ధంగా ఉన్నారు.
మేము ఇక్కడ మాడ్యూల్ను మూసివేస్తాము.
మేము ఇక్కడ మాడ్యూల్ను మూసివేస్తాము.
మాడ్యూల్ రెండు తరువాత, C ++ లో మనం ఇక్కడ చూసిన కొన్ని సాధారణ ఉదాహరణలు లేదా C లోని కొన్ని ఇతర సాధారణ ఉదాహరణలు C ++ లో మరింత సమర్థవంతంగా, సమర్థవంతంగా మరియు మరింత బలమైన పద్ధతులను ఎలా చేయవచ్చో మీకు చూపించడం ప్రారంభిస్తాము.
మాడ్యూల్ రెండు తరువాత, C ++ లో మనం ఇక్కడ చూసిన కొన్ని సాధారణ ఉదాహరణలు లేదా C లోని కొన్ని ఇతర సాధారణ ఉదాహరణలు C ++ లో మరింత సమర్థవంతంగా, సమర్థవంతంగా మరియు మరింత బలమైన పద్ధతులను ఎలా చేయవచ్చో మీకు చూపించడం ప్రారంభిస్తాము.
అందువల్ల, మీ నియంత్రణ ప్రవాహాన్ని సాధించడానికి వేర్వేరు లూప్ లేదా స్విచ్ స్టేట్మెంట్లతో 'కొనసాగించు' మరియు 'విచ్ఛిన్నం' మాత్రమే ఉపయోగించడానికి ప్రయత్నించండి, కానీ ఫంక్షన్ నుండి తిరిగి రావడానికి మీకు 'తిరిగి' అవసరం.
అందువల్ల, మీ నియంత్రణ ప్రవాహాన్ని సాధించడానికి వేర్వేరు లూప్ లేదా స్విచ్ స్టేట్మెంట్లతో 'కొనసాగించు' మరియు 'విచ్ఛిన్నం' మాత్రమే ఉపయోగించడానికి ప్రయత్నించండి, కానీ ఫంక్షన్ నుండి తిరిగి రావడానికి మీకు 'తిరిగి' అవసరం.
కాబట్టి, నాలుగు రకాల నియంత్రణ నిర్మాణాలు ఉన్నాయి.
కాబట్టి, నాలుగు రకాల నియంత్రణ నిర్మాణాలు ఉన్నాయి.
ఈ మాడ్యూల్లో మేము ఇప్పటివరకు చూశాము, సి ప్రోగ్రామ్ యొక్క ప్రాథమిక భాగాలు ఏమిటి, మీరు IO ఎలా చేస్తారు, డేటా రకాన్ని ఉపయోగించి వేరియబుల్ను ఎలా నిర్వచించాలి? మీరు వాటిని ఎలా ప్రారంభించాలి? ఆపరేటర్లను ఉపయోగించి వాటిని వ్యక్తీకరణలుగా ఎలా చేయాలి? ప్రోగ్రామ్ యొక్క ప్రవాహాన్ని నియంత్రించడానికి వ్యక్తీకరణను స్టేట్మెంట్ మరియు విభిన్న కంట్రోల్ ఫ్లో స్టేట్మెంట్గా ఎలా మార్చాలి? కాబట్టి దీనితో, మేము ఈ భాగాన్ని ముగించాము మరియు ఆ తరువాత ఉత్పన్నమైన రకాలు మరియు సి లో వాటి ఉపయోగం గురించి మాట్లాడుతాము
ఈ మాడ్యూల్లో మేము ఇప్పటివరకు చూశాము, సి ప్రోగ్రామ్ యొక్క ప్రాథమిక భాగాలు ఏమిటి, మీరు IO ఎలా చేస్తారు, డేటా రకాన్ని ఉపయోగించి వేరియబుల్ను ఎలా నిర్వచించాలి? మీరు వాటిని ఎలా ప్రారంభించాలి? ఆపరేటర్లను ఉపయోగించి వాటిని వ్యక్తీకరణలుగా ఎలా చేయాలి? ప్రోగ్రామ్ యొక్క ప్రవాహాన్ని నియంత్రించడానికి వ్యక్తీకరణను స్టేట్మెంట్ మరియు విభిన్న కంట్రోల్ ఫ్లో స్టేట్మెంట్గా ఎలా మార్చాలి? కాబట్టి దీనితో, మేము ఈ భాగాన్ని ముగించాము మరియు ఆ తరువాత ఉత్పన్నమైన రకాలు మరియు సి లో వాటి ఉపయోగం గురించి మాట్లాడుతాము
దీనితో, రీక్యాప్ యొక్క ఈ భాగంలో, మేము ప్రధానంగా వేర్వేరు ఉత్పన్న రకాలను గురించి మాట్లాడాము.
దీనితో, రీక్యాప్ యొక్క ఈ భాగంలో, మేము ప్రధానంగా వేర్వేరు ఉత్పన్న రకాలను గురించి మాట్లాడాము.
మొదట, మేము కంటైనర్లు, శ్రేణులు, నిర్మాణాలు మరియు సంఘాల గురించి మాట్లాడాము; సి అందించే మూడు ప్రధాన రకాల కంటైనర్లు; మరియు మేము పాయింటర్ల ద్వారా వివిధ వేరియబుల్స్ మరియు చిరునామాలను నిర్వహించడం గురించి మాట్లాడాము.
మొదట, మేము కంటైనర్లు, శ్రేణులు, నిర్మాణాలు మరియు సంఘాల గురించి మాట్లాడాము; సి అందించే మూడు ప్రధాన రకాల కంటైనర్లు; మరియు మేము పాయింటర్ల ద్వారా వివిధ వేరియబుల్స్ మరియు చిరునామాలను నిర్వహించడం గురించి మాట్లాడాము.
మేము ప్రాథమిక రెఫెరెన్స్ ను ( reference) చర్చించాము మరియు సూచన ద్వారా కాల్ యొక్క రెఫెరెన్స్ ను ( reference) పరిచయం చేశాము.
మరియు, మేము ఇచ్చిపుచ్చుకోవడం వంటి కొన్ని విధులు C ++ లో సూచన పద్ధతిలో కాల్ని ఉపయోగించడం ద్వారా మరింత మెరుగైన రీతిలో రాయబడతాయి.
ఒక ఫంక్షన్ కోసం రిఫరెన్స్ పరామిటర్( reference parameter) సాధారణ ఇన్పుట్ / అవుట్పుట్ పారామిటర్గా ఉండవచ్చు అని కూడా మేము చర్చించాము.
కాబట్టి, ఫంక్షన్ మామూలు పరామితిని మార్చడానికి మరియు అసలు పరామితికి పరిణామాత్మక మార్పులను మార్చాలనుకుంటే, మేము ఒక పారామితిగా నిర్వచించే ఎంపికను కూడా కలిగి ఉంటుంది, దీని ద్వారా అసలు పరామితి ద్వారా మాత్రమే ప్రారంభించబడుతుంది .
కానీ, దీనికి చేసిన మార్పులను కంపైలర్ అనుమతించదు.
మేము ఇప్పుడు కొనసాగి, ఫంక్షన్ యాంత్రికాల యొక్క ఇతర వైపు గురించి మాట్లాడతాము.
C లో, ఫంక్షన్ నుండి వెనక్కి తిరిగి వచ్చేలా మనము విధానాన్ని ఉపయోగిస్తాము; విలువ విధానం ద్వారా తిరిగి పిలుస్తారు.
పారామితులు వాస్తవమైన నుండి వాస్తవమైనవిగా కాపీ చేయబడినందున, రిటర్న్ విలువ( return value)ఎక్స్ప్రెషన్ (expression) నుండి కూడా కాపీ చేయబడుతుంది, మేము రిటర్న్ స్టేట్మెంట్లో (return statements) తిరిగి వ్రాసే చోట మేము ఆ ఫంక్షన్ విలువను ఎక్కడున్నాము.
కాబట్టి, C + + లో విరుద్ధంగా సూచన ద్వారా ఒక విలువను తిరిగి పొందడం సాధ్యమవుతుంది.
మనం ఏమి చెప్తుందో చూద్దాం.
కాబట్టి, మొదట మాకు రెండు వైపులా దృష్టి సారించండి.
ఎడమవైపు, మేము విలువ ద్వారా రిటర్న్ వచ్చాము; కుడి వైపున, మేము సూచన ద్వారా రిటర్న్ వచ్చాము.
కాబట్టి, ఎడమవైపున మేము ఒక ఫంక్షన్ C ++ లో ఒక సాధారణ C రిటర్న్ రూపం.
ఇది సూచన ద్వారా మాత్రమే కాల్ని ఉపయోగిస్తుంది.
మరియు కుడివైపున, దయచేసి రిటర్న్ టైప్ చేసిన తర్వాత మేము సూచన చిహ్నాన్ని కలిగి ఉన్నాము.
కాబట్టి, మనము రిటర్న్ వచ్చే భావం యొక్క సూచనను తిరిగి చెపుతున్నామని చెప్తే.
ఆపై, ఉపయోగం పోలి ఉంటుంది.
ఇక్కడ, మేము ఈ ఫంక్షన్ను ప్రార్థిస్తున్నాము; ఇక్కడ మనము మళ్ళీ ఈ ఫంక్షన్ ను ఇన్వోక్( invoke) చేద్దాము.
మరియు ఫంక్షన్ ఫలితంగా ఉంచడానికి, మరియు ఈ ప్రధానంగా మీరు ప్రభావం ఇల్యూస్ట్రేటింగ్ ప్రయోజనం కోసం.
నేను మరొక సూచన వేరియబుల్ బి( variable) ఉపయోగించారు.
కాబట్టి, బి తిరిగి ఇవ్వబడిన విలువకు సూచనను ఉంచుతుంది.
మీరు ఈ వైపున ఉన్న విలువ భాగాన్ని రిటర్న్ చూడాలని చూస్తే, ఈ రిఫరెన్స్ b స్థిరంగా ఉండాలని మీరు అర్థం చేసుకోవాలి.
ఎందుకు ఈ స్థిరంగా ఉండాలి? ఎందుకంటే మీరు సూచనల యొక్క బలహీనతలను గుర్తుకు తెస్తే, నేను ఒక వ్యక్తీకరణ j + k ను కలిగి ఉంటే, నేను ఒక సూచనను సృష్టించలేను ఎందుకంటే j + k తాత్కాలికంగా గణించబడుతుంది.
ఇప్పుడు, ఇక్కడ నేను కుడి వైపు ఏమి ఉన్నాయి? నేను ఒక ఫంక్షన్ ప్రవేశాన్ని కలిగి ఉన్నాను.
ఫంక్షన్ ప్రేరణ ఏమిటి? ఇది ఒక వ్యక్తీకరణ.
కాబట్టి, దానికి నేను ఒక వ్యత్యాసాన్ని వ్రాయలేను.
నేను ఒక స్థిరమైన సూచనను వ్రాయవలసి ఉంటుంది, ఇది ఈ సూచన ద్వారా సంరక్షించబడే తాత్కాలిక ప్రదేశం.
దీనిపై, స్థిరంగా వ్రాయడం ఏకరూపత కొరకు మాత్రమే.
ఇది నిజంగా అవసరం లేదు.
మీరు విధానం అర్థం ఒకసారి మీరు గ్రహించవచ్చు.
ఇప్పుడు అవుట్పుట్ చూద్దాము.
కాబట్టి, మొదటి అవుట్పుట్ ఇది ఇక్కడ ఉంది, ఇది ప్రింట్ చేస్తుంది, మరియు దాని చిరునామా.
తరువాత ఫంక్షన్ లోపల ఉంది.
ఫంక్షన్ పిలువబడింది.
ఈ ముద్రణ తరువాత, ఫంక్షన్ ఇక్కడ పిలువబడింది.
కాబట్టి, ఈ ప్రస్తావన ఉంది, ఇది మీరు ఈ x అవుట్పుట్ అయిన అవుట్పుట్.
సూచన ద్వారా ఇది కాల్.
కాబట్టి ఊహించిన విధంగా, మరియు x ఒకే చిరునామాను కలిగి ఉంటుంది.
చివరగా, మీరు ఈ మూడో అవుట్పుట్ చూస్తారు, ఇది ప్రధానమైనది, ఫంక్షన్ రిటర్న్( return) వచ్చిన తర్వాత.
మరియు, ఒక ఫంక్షన్ ఏమి చేస్తుంది? ఫంక్షన్ మీరు దాన్ని ఆమోదించిన విలువను తిరిగి అందిస్తుంది.
కాబట్టి, అది అదే విలువను రిటర్న్ పొందబోతుందని భావిస్తున్నారు.
కాబట్టి, b అదే విలువను రిటర్న్ ఇస్తుంది.
కానీ, ఇక్కడ మీరు b యొక్క చిరునామాను ప్రింట్ చేస్తే, అది ఒక చిరునామా లేదా x యొక్క చిరునామా నుండి భిన్నంగా ఉంటుంది.
మరియు, ఈ అంచనా; ఎందుకంటే ఇది విలువ ద్వారా రిటర్న్ వస్తుంది.
కాబట్టి, తిరిగి రావడమే x యొక్క కాపీ.
ఇది తాత్కాలికంగా ఉంది మరియు తాత్కాలికంగా బి యొక్క భాగాన్ని నేను కలిగి ఉన్నాను; బి లో ఒక సూచనగా.
రిఫరెన్సు వైపున అదే విధంగా ఆలోచించండి.
ఇక్కడ, మేము కాల్ ద్వారా చూస్తున్నాము, రిఫరెన్స్ ద్వారా తిరిగి వస్తాము.
మొదటి అవుట్పుట్ ఇక్కడ నుండి, ఇది మరియు దాని చిరునామా.
రెండవది x మరియు దాని చిరునామా.
సూచన ద్వారా కాల్; వారు ఒకేలా ఉండాలి.
అవి ఒకేలా ఉన్నాయి.
ఫంక్షన్ రిటర్న్ వచ్చిన తర్వాత మూడవ ఉత్పత్తి ఇక్కడ నుండి వచ్చింది.
అది b మాత్రమే కాదు అని మీరు చూస్తారు, b యొక్క ఈ చిరునామా కూడా ఒకటి; ఎందుకంటే వాస్తవానికి ఏది రిటర్న్ వచ్చిందంటే, తిరిగి ఇవ్వబడినది x యొక్క విలువ కాదు.
కానీ, తిరిగి ఇవ్వబడింది ఏమిటంటే x యొక్క చిరునామా కూడా; X యొక్క ప్రస్తావన, x యొక్క మారుపేరు.
కాబట్టి, b ఇప్పుడు x అనే మారుపేరు అవుతుంది.
మరియు, x ఏమిటి? x అనేది ఒక మారుపేరు.
కాబట్టి, b ఈ ప్రక్రియలో ఒక మారుపేరు అవుతుంది.
కాబట్టి, విలువ మరియు రిఫరెన్స్ ద్వారా తిరిగి వచ్చే మధ్య వ్యత్యాసం.
మళ్ళీ, మీరు సూచన ద్వారా తిరిగి ఉంటే, అది కొన్ని ఆసక్తికరమైన మరియు గమ్మత్తైన సమస్యలను చూపుతుంది.
కానీ మీరు రిఫరెన్స్ ద్వారా తిరిగి చేస్తే, మరల మరలా, పెద్ద నిర్మాణాల కాపీని మేము రిటర్న్ రావాల్సిన అవసరం ఉన్నట్లయితే దాన్ని నివారించవచ్చు.
కాబట్టి, అనేక ప్రదేశాల్లో మీరు సూచన ద్వారా రిటర్న్ రావచ్చు.
నేను చెప్పినట్లుగా, రిఫరెన్స్ ద్వారా రిటర్న్ రావచ్చు, కొన్నిసార్లు సమస్యాత్మకమైనది.
ఇక్కడ చూడండి.
ప్రస్తావన ద్వారా ఒక పరామితి (parameter) తీసుకునే ఫంక్షన్ మరియు అదే పరామితి సూచన ద్వారా రిటర్న్ వస్తుంది.
మరియు, ఈ లైన్ చూడండి మరియు మొదటి మీరు చూస్తున్నది సరైన కార్యక్రమం అని మీ కళ్ళను విశ్వసించవలసి ఉంటుంది.
మీరు అసైన్మెంట్ యొక్క ఎడమ వైపున సంభవించే ఫంక్షనల్ ఇన్క్రాక్షన్ను ఎప్పుడూ చూడలేదు.
ఫంక్షన్ ప్రవేశాన్ని ఎల్లప్పుడూ కుడి వైపున ఉంటుంది.
కాబట్టి, ఇక్కడ ఇది చెల్లుతుంది; ఎందుకంటే ఫంక్షన్ రిటర్న్ ఏమిటి? ఫంక్షన్ వాస్తవానికి అలియాస్ తిరిగి.
ఇది వాస్తవానికి చిరునామాను తిరిగి అందిస్తుంది; ఇది నిజంగా ఒక వేరియబుల్ రిటర్న్ ఉంది.
కాబట్టి, నేను దానికి కేటాయింపు 3 చేస్తున్నానని చెపుతుంటే, ఆ వాస్తవానికి నేను ఒక అసైన్మెంట్ చేస్తున్నాను.
కాబట్టి, అది అర్థం ఏమిటో చూద్దాం.
అవుట్పుట్ చూద్దాము.
మేము ఇక్కడ అవుట్పుట్లను కలిగి ఉన్నాము.
కాబట్టి, ఇది cout, ఫంక్షన్ ఈ సమయంలో పిలిచారు, x 10, ఇది 10, ఇది 10 అవుతుంది.
కాబట్టి, b మారింది 10.
కాబట్టి, నేను ఈ అవుట్పుట్ చూస్తున్నప్పుడు, అది 10, b 10.
ఆశ్చర్యం లేదు.
నేను ఇక్కడ మరోసారి పిలుస్తాను.
మరియు, రిటర్న్ సూచన 3 కు కేటాయించండి.
కాబట్టి, ఇది అర్థం ఏమిటి? నేను ఒక దానిని కాల్ చేస్తే, అప్పుడు ఒక మరియు x అలియాస్ అవుతుంది.
x ఒక మారుపేరు.
నేను సూచన ద్వారా రిటర్న్ చేస్తున్నాను.
కాబట్టి, నేను తిరిగివచ్చినది X యొక్క అలియాస్, ఇది ఒక మారుపేరు.
కాబట్టి, నేను ఇక్కడ రిటర్న్ వచ్చాను నిజానికి ఒక మారుపేరు.
కాబట్టి, మీరు ఎల్లప్పుడూ ఒక దానికి 3 కేటాయించవచ్చు.
ఆ నియామకం ఎక్కడ జరుగుతుంది? ఇది ఒక మారుపేరు.
కాబట్టి, కార్యక్రమంలో ఏం జరుగుతుంది?
A. కాబట్టి, దీనిని బయటకు తనిఖీ చేయండి.
a ఒక మారింది 3.కాబట్టి, ఈ మీరు రిఫరెన్స్ ద్వారా రిటర్న్ చేస్తే సాధ్యం అవుతుంది.
ఇప్పుడు, మేము ముందుకు వెళ్తాము, తరువాత లక్షణాలను పొందటానికి, ఈ రకమైన కార్యక్రమంలో కొన్ని ప్రదేశాలలో ప్రయోజనం కోసం ఒక గమ్మత్తైన విషయం మరియు కొంచెం గందరగోళపరిచే విషయం ఎలా ఉపయోగించాలో చూపిస్తాము.
నేను చాలా తరచుగా ఈ రకమైన సంకేతాన్ని రాయాను.
కానీ, ఈ మంచి మార్గంలో ప్రయోజనం పొందవచ్చు ప్రదేశాలలో ఉన్నాయి.
మరియు మీరు ఇప్పటివరకు చూడని కుడి కాలమ్లో( right column) దీన్ని ఉపయోగించడం, మీరు నైపుణ్యం లేనివాడితే, దీనిని చేయటానికి ప్రయత్నిస్తున్నప్పుడు మీ పాదాలకు కాల్చవచ్చు.
ఈ సంకేతం చూడుము, ఇంతకు ముందుగా ఉన్న కోడ్ ఏమిటంటే.
అది ఇప్పుడు పారామితి (parameter) x ను తీసుకుంటుంది, అది సహజంగా ఒక మారుపేరు అవుతుంది, ఎందుకంటే అది సూచన ద్వారా కాల్ మరియు ఇది స్థానిక వేరియబుల్ (variable) td అది x తో t ప్రారంభించి, ఆపై t పెరుగుతుంది.
ఆపై, ఇక్కడ చూడండి, ముందు ఇది x రిటర్న్.
ఇప్పుడు, ఈ స్థానిక వేరియబుల్ ఇది రిటర్న్ గా రిటర్న్ అవుతుంది.
మరియు, మీరు ఇదే పని చేసాడు.
మొదటి రెండు పంక్తులు ఒకే విధంగా ఉన్నాయి.
వారు ఒకే ఉత్పత్తిని ఉత్పత్తి చేస్తారు.
సో, చూడండి ఏమీ లేదు.
ఈ రేఖ వద్ద చూడండి.
మీరు దీన్ని ఇక్కడ చేసారు.
కాబట్టి, మీరు దీన్ని చేసి, ఆశిస్తారో ప్రయత్నిస్తే, కొంత మార్పు ఒకదానికి లేదా అలాంటిదే అవుతుంది.
ఏమీ జరగదని మీరు ఆశ్చర్యపోతారు; ఎందుకంటే నీవు చేసిన పని ఏమిటి? మీరు నిజానికి ఒక స్థానిక వేరియబుల్ని తిరిగి ఇచ్చారు.
కాబట్టి, ఇక్కడ తిరిగి పొందడం అనేది స్థానిక వేరియబుల్ t కు ఒక సూచన.
మరియు అది చాలా ప్రమాదకరమైనది; ఎందుకంటే మీరు సూచనను రిటర్న్ ఇచ్చిన తర్వాత, ఫంక్షన్ కాల్( function call) ముగిసింది.
కాబట్టి, స్థానిక వేరియబుల్ అదృశ్యమయ్యింది, కానీ మీ సూచన ఇప్పటికీ సజీవంగా ఉంది.
సో, మీ సూచన నేను వేరియబుల్ కలిగి చెప్పారు.
ఫంక్షన్ కాల్ రద్దు చేయబడింది.
కాబట్టి, వాస్తవానికి అది లేదు.
ఈ వేరియబుల్ t ఇంకా ఉంది, అది చనిపోతుంది.
కానీ, మీరు ఆ సూచనను కలిగి ఉన్నారు.
కాబట్టి, ఈ రకమైన కార్యక్రమం ఫలితాలు చాలా అనూహ్యమైనవి.
కాబట్టి, దిగువ పంక్తి ప్రిస్క్రిప్షన్ అనేది సూచన ద్వారా రిటర్న్ ఉపయోగిస్తుంటే, ఒక స్థానిక వేరియబుల్ని ఎన్నటికీ రిటర్న్ ఇవ్వదు.
మీరు రిఫరెన్స్ ద్వారా రిటర్న్ వస్తే, ఎల్లప్పుడూ అందుబాటులో ఉన్న వేరియబుల్ను రిటర్న్ పంపుతారు, ఇది ఫంక్షన్ కాల్ ముగిసిన తర్వాత తార్కికంగా ప్రత్యక్షంగా ఉండాలి.
కాబట్టి, ఆ వేరియబుల్స్ ప్రపంచంగా ఉండవచ్చు, ఆ వేరియబుల్స్ మనం చూస్తాం నిశ్చల సభ్యులు కావచ్చు, ఆ పారామీటర్లలో (parameters) మీరు అసలు పారామీటర్లలో అలియాస్గా ఉండవచ్చని, ఇవి గరిష్టంగా విలువలను కేటాయించగలవు.
కానీ, ఒక ఫంక్షన్ కలిగి ఉన్న ఆటోమేటిక్ స్థానిక వేరియబుల్స్( local variables) కాదు, ఎందుకంటే మీరు నిజమైన ఇబ్బందులను పొందవచ్చు మరియు ఈ గుర్తించడం చాలా కష్టంగా ఉండే దోషాలు; ఎందుకంటే మీరు కోడ్లో ఏదైనా చూడలేరు.
కోడ్లో, ఇది శుభ్రంగా మరియు సులభమైన ప్రతిదీ ఉంది.
కానీ, ఇప్పటికీ మీ ఫలితాలు ఊహించలేనివి.
చివరగా, మనము ఈ మాడ్యూల్ ద్వారా చూసినట్లుగా, ఒక వేరియబుల్ మారుపేరు గురించి ప్రస్తావన ఉంది, ఇది ఒక విధానం.
ఇది మీరు వేరియబుల్ యొక్క విలువను మార్చకుండా అనుమతిస్తుంది, .
కాబట్టి, ఆ విధంగా అది చాలా సారూప్యతను మరియు భేదాలతో విభేదాలు కలిగి ఉంది.
కాబట్టి, నేను ఈ రెండు నిలువు వరుసలలో ఈ వ్యత్యాసాన్ని క్లుప్తీకరిస్తాను.
కాబట్టి, గమనికలు మరియు సూచనలు మధ్య, రెండు చిరునామాలు చూడండి.
గమనికలు చిరునామాను సూచిస్తాయి; సూచన కూడా చిరునామాను సూచిస్తుంది.
కాబట్టి, వారు ఆ మేరకు సమానంగా ఉంటారు, కానీ అవి విభిన్న మార్గాల్లో విభేదిస్తాయి.
ఉదాహరణకు, తరువాతి స్థానం చూడండి.
గమనికలు NULL కు సూచించవచ్చు; నేను ఒక పాయింటర్ (pointer) శూన్య కేటాయించవచ్చు.
అంటే ఏమిటి? అర్థాత్మకంగా, నేను ఎక్కడైనా గురిపెట్టి లేనని అర్థం.
ఇది నేను తీసుకున్న ఎత్తి చూపిన డేటాను(data) కలిగి లేదు.
కానీ, సూచన NULL ఉండకూడదు; ఎందుకంటే అది అలియాస్.
ఇది కేవలం అలియాస్.
సో, అది ఒక వేరియబుల్ ప్రభావాన్ని కలిగి ఉండాలి.
కాబట్టి, ఇది ప్రాథమిక వ్యత్యాసం.
పాయింటర్ ఇతర వేర్వేరు డేటా పాయింట్స్ (data points) నుండి, ఒక పాయింటర్ స్థిరంగా తప్ప, నేను నిజంగా అది సూచించే డేటా మార్చవచ్చు.
కాబట్టి, మీరు దీన్ని చేయగలరని ఉదాహరణ స్పష్టంగా చూపిస్తుంది.
P మొదటగా ఒక సూచించబడి ఉంటే, అప్పుడు అది కొన్ని పాయింట్ స్టేట్మెంట్లలో (point statements), అది బి కి సూచిస్తుంది.
కానీ, ఒక సూచన కోసం, మీరు ఏమి సూచిస్తున్నారంటే నిర్వచనం ద్వారా నిర్ధారిస్తారు; ఎందుకంటే ఇది ఒక వేరియబుల్ ప్రత్యామ్నాయ పేరు.
కాబట్టి, ఖచ్చితంగా నేను ఆ సూచనను మార్చుకోలేను మరియు పేరు వేరేగా చేయలేను.
ఉదాహరణకు, మేము ఈ లైన్ లోకి చూస్తున్నట్లయితే, మీరు ఇలా చేయాలని ప్రయత్నిస్తున్నట్లయితే, మీరు దాన్ని బి & b గా వ్రాసినట్లయితే, మీరు బి యొక్క సూచనను మారుస్తామని ఆలోచిస్తే, a నుండి c కు.
మీరు దీనిని చేయలేరు ఎందుకంటే మీరు వ్రాసే క్షణం & b.
కాబట్టి, ఇది ఒక మారుపేరుగా ఉంది, & b ఇది ఒక మారుపేరు అయినందున & amp; కాబట్టి, మీరు బి గా వ్రాస్తే ఏ, ఒక దరఖాస్తు చేయాలి, ఎందుకంటే ఇది ఒక మారుపేరు.
ఆపై, ఒక చిరునామా ఆపరేటర్.
కాబట్టి, మీరు ఏమి చెప్తున్నారో; మీరు ఒక చిరునామాకు c కు కేటాయించాలని ప్రయత్నిస్తున్నారు, ఇది అర్థరహిత విషయం.
కాబట్టి, మీరు అన్ని అవకాశాలలో ప్రయత్నించవచ్చు.
ఉదాహరణకు, మీరు సరే అని చెప్పటానికి ప్రయత్నిస్తే, నేను, c కు c కు ఇవ్వడం ద్వారా సూచనను మార్చుకోవాలనుకుంటున్నాను, కానీ b is a a.
కాబట్టి, మీరు బి నుండి సి కు కేటాయించాలని ప్రయత్నిస్తే, మీరు ప్రాథమికంగా c కు కేటాయించవచ్చు.
భాష మీకు ఏ యంత్రాంగాన్ని ఇవ్వదు, ఏదైనా ఆపరేటర్ సూచనలతో ఏమీ చేయలేరు.
మీరు మాత్రమే సూచించవచ్చు.
మరియు, మీరు ఏమైనా వాస్తవంగా సూచించబడుతున్న దత్తాంశ పరంగా, సూచనగా సూచించబడుతుంది.
కాబట్టి, ఇది ప్రాథమిక వ్యత్యాసం.
గమనికలు కోసం, నేను ఎక్కడైనా గురిపెట్టి లేనందున అది సాధ్యమే.
ఒక పాయింటర్ ఉపయోగించి ముందు, మేము శూన్య తనిఖీ చేయాలి.
రిఫరెన్స్( reference)అవసరం లేదు ఎందుకంటే ఇది ఉనికిలో ఉన్నట్లయితే, అది ఏదో అలియాస్ లేదా ఉనికిలో లేదు.
కాబట్టి, కోడ్ వ్రాయడానికి చాలా సులభం చేస్తుంది.
మీరు దాని గురించి బాధపడటం లేదు మరియు ఖచ్చితంగా అది ఆ కోణంలో వేగంగా చేస్తుంది ఎందుకంటే ఆ తనిఖీలు అవసరం లేదు.
చివరగా, మీరు రెండు గమనికలు మరియు సూచనలు చిరునామాలను సరిగ్గా పరిశీలిస్తే, మరియు తేడా ఏమిటి? వ్యత్యాసం సాధికారతలో లేదు, మీరు సూచన కోసం ఎలాంటి పరంగా కాదు.
తేడా మీరు సూచన కోసం పొందలేము పరంగా ఉంది.
మీరు ఒక పాయింటర్ వేరియబుల్ ఉంటే, మీరు ఆ వేరియబుల్( variables)తో ఆపరేట్ చేసే ఆపరేటర్లు(operators) అనేక ఇవ్వబడుతుంది.
మీరు నిజంగా ఆ చిరునామాను ఒక విలువగా వాడవచ్చు మరియు వేర్వేరు పనులు చేయవచ్చు.
మీరు ఒక పూర్ణాంకం జోడించడానికి మరియు ఒక పాయింటర్ ముందుకు చేయవచ్చు.
మీరు రెండు పాయింటర్ విలువలు తీసుకొని ఒక తేడా చేయవచ్చు మరియు వ్యూహంలో ఈ రెండు పాయింటర్ల మధ్య ఎన్ని అంశాలు ఉన్నాయి.
కాబట్టి, ఈ ఆపరేటర్లు మీకు ఇవ్వబడుతున్నాయి, మీకు కావలసిన మార్గంలో మీరు పాయింటర్ను మార్చవచ్చు; ఇది పాయింటర్( pointer) చాలా శక్తివంతమైన చేస్తుంది.
సూచనలో కూడా చిరునామా నిల్వ చేయబడుతుంది.
కానీ, మీరు ఆ చిరునామాను పట్టుకోవటానికి ఎటువంటి మార్గం లేదు.
మీరు ఆ చిరునామాని కలిగి ఉండలేరు.
సూచనలో ఇవ్వబడిన ఆపరేషన్(operation) లేదు.
మీరు ప్రయత్నించిన ఏ ఆపరేషన్ అయినా, వాస్తవానికి సూచించబడిన (object)లేదా రిఫెర్ట్లో (repairs)పనిచేయడానికి సాధారణంగా దిమ్మలవుతుంది.
కాబట్టి, ఇది ప్రాథమిక వ్యత్యాసం.
మరియు, C ++ రూపకల్పనలో, రెండు గమనికలు మరియు సూచనలు వారి స్వంత ప్రదేశంగా ఉంటాయి.
గమనికలు మరియు రిఫరెన్సుతో( reference) నిజంగా దూరంగా ఉండటం సాధ్యం కాదు, అయితే మీరు ఈ రెండు విధానాలను కలిగి లేని భాషలు ఉన్నాయి.
కాబట్టి, అర్థం మంచిది.
ప్రత్యేకంగా, మీరు జావాకు తెలిసిన కొందరు తెలిస్తే మీకు జావా ఒక సూచన ఉందని తెలుస్తుంది, పాయింటర్( pointer) లేదు.
మరియు, నేను ఈ అంశాన్ని పెంచుతున్నాను, ఎందుకంటే మీరు జావా సూచనలో C ++ లో సూచన లేదు అని గమనించదలిచాను.
కాబట్టి, మీరు భావన భావనలో మరింత స్పష్టీకరణను కలిగి ఉండాలని మరియు అభిమాన జావా పుస్తకాన్ని చదివాను అని అనుకుంటే, అప్పుడు మీరు మరింత గందరగోళంగా పొందుతారు.
కాబట్టి, C ++ లో జావా యొక్క ప్రస్తావన యొక్క అసలు సమాంతరంగా లేదు, కానీ ఇది ఎక్కువగా స్థిరమైన పాయింటర్తో( pointer) సమానంగా ఉంటుంది.
మీరు జావాలో ఏమి చేయాలో సూచన అనేది వాస్తవానికి ఒక పాయింటర్, (pointer)కానీ మీరు మార్చలేని స్థిరమైన పాయింటర్(pointer).
కానీ, ఇది పూర్తిగా పాయింటర్(pointer) లేదా C ++ లో పూర్తిగా సూచన కాదు.
మరియు, భాషలు ఉన్నాయి; సి వంటి సూచన లేదు.
గమనికలు లేని భాషలు ఉన్నాయి.
C ++ లో మనకు రెండూ ఉన్నాయి.
కాబట్టి, మనకు ఇచ్చిన సందర్భంలో నిర్ణయం తీసుకోవడానికి పెద్ద బాధ్యత ఉంది, మనము పాయింటర్ను( pointer) ఉపయోగించాలా లేదా మనం ఒక రిఫరెన్స్(reference) ఉపయోగించాలి.
మరియు మేము పాటు వెళ్ళి, వివిధ లక్షణాలు మరియు వివిధ ప్రోగ్రామింగ్(programming) ఉదాహరణలు మీరు సమర్థవంతమైన C ++ ప్రోగ్రామర్( programmer) మారింది కోసం ఎంపిక న్యాయమైన మరియు కుడి ఉండాలి అని హైలైట్ ఉంచుకుంటుంది.
కాబట్టి, ఈ మాడ్యూల్ 7 లో, C ++ లో ప్రస్తావన భావనను ప్రవేశపెట్టాము మరియు విలువ మరియు కాల్ ద్వారా కాల్ మధ్య తేడాను అధ్యయనం చేశాము.
మేము రిఫరెన్స్ (reference)ద్వారా రిటర్న్( return)భావనను కూడా ప్రవేశపెట్టాము మరియు రెండు విధానాల మధ్య వ్యత్యాసాన్ని అధ్యయనం చేశాము.
మేము కొన్ని ఆసక్తికరమైన బలహీనతలను, మాయలు, గందరగోళ పరిస్థితులను ప్రదర్శించాము, వీటిలో నుండి బయటపడవచ్చు మరియు మేము సూచనలు మరియు గమనికల మధ్య వ్యత్యాసాల గురించి చర్చించాము.
మేము ఏ రకమైన కంటైనర్ మరియు డేటా ఉపయోగిస్తున్నా, విలీనం, స్వాప్, డిలీట్, ఇవన్నీ భిన్నంగా మనం ఉపయోగించాల్సిన అనేక ఇతర అల్గోరిథంలకు కూడా ఇది నిజమని మేము చూపిస్తాము.
మేము ఏ రకమైన కంటైనర్ మరియు డేటా ఉపయోగిస్తున్నా, విలీనం, స్వాప్, డిలీట్, ఇవన్నీ భిన్నంగా మనం ఉపయోగించాల్సిన అనేక ఇతర అల్గోరిథంలకు కూడా ఇది నిజమని మేము చూపిస్తాము.
మరియు, ఈ అల్గోరిథమిక్ భాగాలను అధ్యయనం చేయడానికి మరియు వాటిని ఉపయోగించడం ప్రారంభించడానికి నేను మిమ్మల్ని ప్రోత్సహిస్తాను.
మరియు, ఈ అల్గోరిథమిక్ భాగాలను అధ్యయనం చేయడానికి మరియు వాటిని ఉపయోగించడం ప్రారంభించడానికి నేను మిమ్మల్ని ప్రోత్సహిస్తాను.
ఆపై మొత్తం యొక్క అందం ఉంది, మీరు నిజంగా చాలా C + గురించి తెలుసుకోవలసిన అవసరం లేదు, ఎందుకంటే మీరు వాటిని ఉపయోగించగలగాలి, ఎందుకంటే వాటిని ఉపయోగించడం వారి రూపకల్పన మరియు వారు చేసే విధానంతో చాలా సౌకర్యంగా ఉంటుంది వ్యవస్థీకృతమై ఉంది మరియు మీరు మాన్యువల్ నుండి అధ్యయనం చేయవచ్చు మరియు వాటిని ఉపయోగించడం ప్రారంభించవచ్చు.
ఆపై మొత్తం యొక్క అందం ఉంది, మీరు నిజంగా చాలా C + గురించి తెలుసుకోవలసిన అవసరం లేదు, ఎందుకంటే మీరు వాటిని ఉపయోగించగలగాలి, ఎందుకంటే వాటిని ఉపయోగించడం వారి రూపకల్పన మరియు వారు చేసే విధానంతో చాలా సౌకర్యంగా ఉంటుంది వ్యవస్థీకృతమై ఉంది మరియు మీరు మాన్యువల్ నుండి అధ్యయనం చేయవచ్చు మరియు వాటిని ఉపయోగించడం ప్రారంభించవచ్చు.
జాబితా; ఒకే లింక్డ్ జాబితా, మ్యాప్, ఇది పేరు విలువ జత లాంటిది; సెట్, ఆర్డరింగ్ ముఖ్యం కానప్పుడు, మీరు దానిలోని యూనియన్ను దాటవచ్చు.
జాబితా; ఒకే లింక్డ్ జాబితా, మ్యాప్, ఇది పేరు విలువ జత లాంటిది; సెట్, ఆర్డరింగ్ ముఖ్యం కానప్పుడు, మీరు దానిలోని యూనియన్ను దాటవచ్చు.
ఈ డేటా నిర్మాణాలన్నీ సి ++ ప్రామాణిక లైబ్రరీలో రెడీమేడ్లో అందుబాటులో ఉన్నాయి.
ఈ డేటా నిర్మాణాలన్నీ సి ++ ప్రామాణిక లైబ్రరీలో రెడీమేడ్లో అందుబాటులో ఉన్నాయి.
కాబట్టి, ప్రోగ్రామింగ్ భాష యొక్క వివరణాత్మక సూక్ష్మ నైపుణ్యాలను అర్థం చేసుకోవడానికి ముందు మేము C ++ లో ప్రోగ్రామింగ్ ప్రారంభించేటప్పుడు, C ++ ప్రామాణిక లైబ్రరీని మళ్లీ మళ్లీ పరిశీలించాలనుకుంటున్నాము.ఈ ప్రోగ్రామ్లన్నీ డేటా స్ట్రక్చర్లను ఉపయోగించే ప్రోగ్రామ్లను వ్రాస్తాయి మరియు మనవి ప్రోగ్రామింగ్ సులభం మరియు ఉపయోగించడానికి మరింత బలంగా ఉంది.
కాబట్టి, ప్రోగ్రామింగ్ భాష యొక్క వివరణాత్మక సూక్ష్మ నైపుణ్యాలను అర్థం చేసుకోవడానికి ముందు మేము C ++ లో ప్రోగ్రామింగ్ ప్రారంభించేటప్పుడు, C ++ ప్రామాణిక లైబ్రరీని మళ్లీ మళ్లీ పరిశీలించాలనుకుంటున్నాము.ఈ ప్రోగ్రామ్లన్నీ డేటా స్ట్రక్చర్లను ఉపయోగించే ప్రోగ్రామ్లను వ్రాస్తాయి మరియు మనవి ప్రోగ్రామింగ్ సులభం మరియు ఉపయోగించడానికి మరింత బలంగా ఉంది.
కాబట్టి, నేను ఇక్కడ ప్రింట్ చేసినప్పుడు నాకు ఉద్యోగం ఉంది, మరియు మిగిలిన పేజీల సంఖ్యను ప్రింట్ చేసినప్పుడు, నేను మరో 100 పేజీలను లోడ్ చేసాను, కాబట్టి ఇది 540 లో సంఖ్య అవుతుంది, ఇది ఈ విధంగా ప్రవర్తిస్తుంది.
కాబట్టి, నేను ఇక్కడ ప్రింట్ చేసినప్పుడు నాకు ఉద్యోగం ఉంది, మరియు మిగిలిన పేజీల సంఖ్యను ప్రింట్ చేసినప్పుడు, నేను మరో 100 పేజీలను లోడ్ చేసాను, కాబట్టి ఇది 540 లో సంఖ్య అవుతుంది, ఇది ఈ విధంగా ప్రవర్తిస్తుంది.
అందువల్ల, స్టాటిక్ డేటా సభ్యులను ఉపయోగించి, ఈ ప్రోగ్రామ్లో నేను ప్రతి ఉద్యోగానికి ప్రత్యేకమైన కొన్ని సమాచారాన్ని ట్రాక్ చేయగలను, కాని ఇది మొత్తం ప్రింట్ ఉద్యోగాల సేకరణ. దీనికి ప్రత్యేకమైనది, ప్రస్తుతం పనిచేస్తున్న ప్రింట్ ఉద్యోగాల సంఖ్య; ఇది ప్రాథమికంగా వ్యవస్థలో ప్రస్తుతం ఉన్న తరగతి యొక్క వస్తువు (ల) సంఖ్యను మరియు నేను తారుమారు చేస్తున్న ట్రేలోని పేజీల సంఖ్యను లెక్కించే ప్రపంచ వనరు.
అందువల్ల, స్టాటిక్ డేటా సభ్యులను ఉపయోగించి, ఈ ప్రోగ్రామ్లో నేను ప్రతి ఉద్యోగానికి ప్రత్యేకమైన కొన్ని సమాచారాన్ని ట్రాక్ చేయగలను, కాని ఇది మొత్తం ప్రింట్ ఉద్యోగాల సేకరణ. దీనికి ప్రత్యేకమైనది, ప్రస్తుతం పనిచేస్తున్న ప్రింట్ ఉద్యోగాల సంఖ్య; ఇది ప్రాథమికంగా వ్యవస్థలో ప్రస్తుతం ఉన్న తరగతి యొక్క వస్తువు (ల) సంఖ్యను మరియు నేను తారుమారు చేస్తున్న ట్రేలోని పేజీల సంఖ్యను లెక్కించే ప్రపంచ వనరు.
కాబట్టి, ఇది స్టాటిక్ డేటా సభ్యుని యొక్క సాధారణ ఉపయోగం.
కాబట్టి, ఇది స్టాటిక్ డేటా సభ్యుని యొక్క సాధారణ ఉపయోగం.
ఇప్పుడు సహజంగా మీరు ఇక్కడ చూడగలిగినట్లుగా స్టాటిక్ డేటా సభ్యులు పబ్లిక్ దృశ్యమానత స్థలంలో ఉన్నారు, కాబట్టి నా అప్లికేషన్ మారుతున్న వెంటనే, ఎవరైనా వాస్తవానికి వచ్చి ఈ విలువలను మార్చవచ్చు ఇంక్రిమెంట్ లేదా క్షీణత పరంగా కొత్త విలువను లేదా మార్పును మాత్రమే అందించగలదు.
ఇప్పుడు సహజంగా మీరు ఇక్కడ చూడగలిగినట్లుగా స్టాటిక్ డేటా సభ్యులు పబ్లిక్ దృశ్యమానత స్థలంలో ఉన్నారు, కాబట్టి నా అప్లికేషన్ మారుతున్న వెంటనే, ఎవరైనా వాస్తవానికి వచ్చి ఈ విలువలను మార్చవచ్చు ఇంక్రిమెంట్ లేదా క్షీణత పరంగా కొత్త విలువను లేదా మార్పును మాత్రమే అందించగలదు.
కాబట్టి, నేను తదుపరి చేయడానికి ప్రయత్నించాలి, వాటిని ప్రైవేట్గా చేయడానికి ప్రయత్నించండి, తద్వారా వాటిని నేరుగా మార్చలేరు.
కాబట్టి, నేను తదుపరి చేయడానికి ప్రయత్నించాలి, వాటిని ప్రైవేట్గా చేయడానికి ప్రయత్నించండి, తద్వారా వాటిని నేరుగా మార్చలేరు.
ఇప్పుడు నేను వాటిని ప్రైవేట్గా చేస్తే ఒక ప్రశ్న వస్తుంది, నేను దానిని ఎలా మార్చగలను? నేను దీన్ని ఇకపై మార్చలేను, ఎందుకంటే నేను దీన్ని ప్రైవేట్గా చేస్తే, సహజంగానే నేను ట్రేల సంఖ్య లేదా ట్రేలోని పేజీల సంఖ్యను మార్చలేను.
ఇప్పుడు నేను వాటిని ప్రైవేట్గా చేస్తే ఒక ప్రశ్న వస్తుంది, నేను దానిని ఎలా మార్చగలను? నేను దీన్ని ఇకపై మార్చలేను, ఎందుకంటే నేను దీన్ని ప్రైవేట్గా చేస్తే, సహజంగానే నేను ట్రేల సంఖ్య లేదా ట్రేలోని పేజీల సంఖ్యను మార్చలేను.
...
@@ -184,5 +183,3 @@
...
@@ -184,5 +183,3 @@
కాబట్టి, ఇది ఒక సాధారణ మార్గం, మీరు స్టాటిక్ డేటా సభ్యులు మరియు స్టాటిక్ మెంబర్ ఫంక్షన్లను ఉపయోగిస్తే, సింగిల్టన్ చాలా సురక్షితంగా అమలు చేయవచ్చు.
కాబట్టి, ఇది ఒక సాధారణ మార్గం, మీరు స్టాటిక్ డేటా సభ్యులు మరియు స్టాటిక్ మెంబర్ ఫంక్షన్లను ఉపయోగిస్తే, సింగిల్టన్ చాలా సురక్షితంగా అమలు చేయవచ్చు.
నేను దీన్ని ప్రింటర్ క్లాస్తో చూపించాను, కాని సింగిల్టన్ అవసరమయ్యే ఏ ఇతర క్లాస్తోనైనా చేయవచ్చు.
నేను దీన్ని ప్రింటర్ క్లాస్తో చూపించాను, కాని సింగిల్టన్ అవసరమయ్యే ఏ ఇతర క్లాస్తోనైనా చేయవచ్చు.
కాబట్టి, సారాంశంలో, మేము స్టాటిక్ డేటా సభ్యులను మరియు స్టాటిక్ మెంబర్ సభ్యులను పరిచయం చేసాము మరియు తరగతి స్థాయిలో మరియు ప్రత్యేకించి ఏదైనా డేటాను నిర్వహించడానికి అవి ఉపయోగించబడుతున్నాయని మేము చూపించాము. సింగిల్టన్ వస్తువులను నిష్పాక్షికంగా సృష్టించడానికి, వస్తువులను లెక్కించడం వేర్వేరు కోసం చేయవచ్చు ప్రయోజనాల కోసం.
కాబట్టి, సారాంశంలో, మేము స్టాటిక్ డేటా సభ్యులను మరియు స్టాటిక్ మెంబర్ సభ్యులను పరిచయం చేసాము మరియు తరగతి స్థాయిలో మరియు ప్రత్యేకించి ఏదైనా డేటాను నిర్వహించడానికి అవి ఉపయోగించబడుతున్నాయని మేము చూపించాము. సింగిల్టన్ వస్తువులను నిష్పాక్షికంగా సృష్టించడానికి, వస్తువులను లెక్కించడం వేర్వేరు కోసం చేయవచ్చు ప్రయోజనాల కోసం.
మేము టెంప్లేట్లు(templates) లేదా జెనరిక్(generic) ప్రోగ్రామింగ్, C ++ లో మెటా ప్రోగ్రామింగ్ గురించి చర్చించాము, ఇక్కడ మేము కొన్ని విధులు, టెంప్లేట్ చేయబడిన ఫంక్షన్లు, ఒకటి లేదా అంతకంటే ఎక్కువ రకం వేరియబుల్స్తో(variables) పారామీటర్డ్(parameterized) ఫంక్షన్లను వ్రాయవచ్చు.
మేము టెంప్లేట్లు(templates) లేదా జెనరిక్(generic) ప్రోగ్రామింగ్, C ++ లో మెటా ప్రోగ్రామింగ్ గురించి చర్చించాము, ఇక్కడ మేము కొన్ని విధులు, టెంప్లేట్ చేయబడిన ఫంక్షన్లు, ఒకటి లేదా అంతకంటే ఎక్కువ రకం వేరియబుల్స్తో(variables) పారామీటర్డ్(parameterized) ఫంక్షన్లను వ్రాయవచ్చు.
తదనుగుణంగా వివిధ పారామిరైజ్డ్ రకాలను ఎక్ష్ప్లిసిట్(explicit) లేదా ఇంప్లిసిట్ వేర్వేరు ఫంక్షన్ పొందవచ్చు ఓవర్లోడ్(overload) గా ఉత్పత్తి మరియు పొందవచ్చు.
తదనుగుణంగా వివిధ పారామిరైజ్డ్ రకాలను ఎక్ష్ప్లిసిట్(explicit) లేదా ఇంప్లిసిట్ వేర్వేరు ఫంక్షన్ పొందవచ్చు ఓవర్లోడ్(overload) గా ఉత్పత్తి మరియు పొందవచ్చు.
మేము మునుపటి మాడ్యూల్లో లోతును చూశాము.
మేము మునుపటి మాడ్యూల్లో లోతును చూశాము.
మేము ఇంతకుముందు టెంప్లేట్ చేసిన రూపంలో వ్రాసిన మాక్స్ ఫంక్షన్ (ఫంక్షన్) యొక్క ఉదాహరణను లోతుగా చూశాము, దానిని పూర్ణాంకం మరియు డబుల్ కోసం ఉపయోగించాము మరియు తరువాత మేము దానిని సి తీగలకు ప్రత్యేకత చేసాము మరియు తరువాత ఈ వినియోగదారు కోసం కూడా నిర్వచించమని చూపించాము కాంప్లెక్స్ వంటి రకాలు.
మేము ఇంతకుముందు టెంప్లేట్ చేసిన రూపంలో వ్రాసిన మాక్స్ ఫంక్షన్ (ఫంక్షన్) యొక్క ఉదాహరణను లోతుగా చూశాము, దానిని పూర్ణాంకం మరియు డబుల్ కోసం ఉపయోగించాము మరియు తరువాత మేము దానిని సి తీగలకు ప్రత్యేకత చేసాము మరియు తరువాత ఈ వినియోగదారు కోసం కూడా నిర్వచించమని చూపించాము కాంప్లెక్స్ వంటి రకాలు.
ప్రస్తుత మాడ్యూల్లో, మేము దానిపై కొనసాగుతాము మరియు మా దృష్టి C ++ లోని ఇతర రకాల టెంప్లేట్లపై ఉంటుంది, వీటిని క్లాస్ టెంప్లేట్లు అంటారు.
ప్రస్తుత మాడ్యూల్లో, మేము దానిపై కొనసాగుతాము మరియు మా దృష్టి C ++ లోని ఇతర రకాల టెంప్లేట్లపై ఉంటుంది, వీటిని క్లాస్ టెంప్లేట్లు అంటారు.
ఇది రూపురేఖలు మరియు మేము చర్చించే నీలం విభాగం మీ స్క్రీన్ యొక్క ఎడమ వైపున అందుబాటులో ఉంటుంది.
ఇది రూపురేఖలు మరియు మేము చర్చించే నీలం విభాగం మీ స్క్రీన్ యొక్క ఎడమ వైపున అందుబాటులో ఉంటుంది.
ఇది శీఘ్ర పునరావృతం కోసం మాత్రమే, ఒక టెంప్లేట్ అంటే ఏమిటో మనం చూస్తాము మరియు దానిలో కొంత భాగాన్ని చూశాము.
ఇది శీఘ్ర పునరావృతం కోసం మాత్రమే, ఒక టెంప్లేట్ అంటే ఏమిటో మనం చూస్తాము మరియు దానిలో కొంత భాగాన్ని చూశాము.
మరియు ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్ సందర్భంలో, ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్ (టెంప్లేట్) ప్రాథమికంగా అల్గోరిథంలో కోడ్ పునర్వినియోగం అని మేము చూశాము.
మరియు ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్ సందర్భంలో, ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్ (టెంప్లేట్) ప్రాథమికంగా అల్గోరిథంలో కోడ్ పునర్వినియోగం అని మేము చూశాము.
కాబట్టి, మీకు సెర్చ్ అల్గోరిథం ఉంది, మాకు సార్టింగ్ అల్గోరిథం ఉంది, మాకు కనీస అల్గోరిథం ఉంది, మాకు సగటు అల్గోరిథం ఉంది.
కాబట్టి, మీకు సెర్చ్ అల్గోరిథం ఉంది, మాకు సార్టింగ్ అల్గోరిథం ఉంది, మాకు కనీస అల్గోరిథం ఉంది, మాకు సగటు అల్గోరిథం ఉంది.
C ++ లో, దీని కోసం కోడ్ ప్రత్యేకంగా మూలకం రకం ఆధారంగా తిరిగి ఇవ్వబడుతుంది.
C ++ లో, దీని కోసం కోడ్ ప్రత్యేకంగా మూలకం రకం ఆధారంగా తిరిగి ఇవ్వబడుతుంది.
ఏదేమైనా, సాధారణంగా అల్గోరిథం మూలకం రకాలను బట్టి మారదు, కాబట్టి టెంప్లేట్ను ఉపయోగించడం ద్వారా, ఈ ఫంక్షన్ (ఫంక్షన్) కోడ్ (కోడ్), శోధనలు, కనిష్ట, సగటును క్రమబద్ధీకరించే ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్ (టెంప్లేట్) ను వ్రాయవచ్చు. వాటన్నింటినీ సాధారణ రూపంలో వ్రాయవచ్చు మరియు వెంటనే ఆ రకాన్ని బట్టి ఉంటుంది.
ఏదేమైనా, సాధారణంగా అల్గోరిథం మూలకం రకాలను బట్టి మారదు, కాబట్టి టెంప్లేట్ను ఉపయోగించడం ద్వారా, ఈ ఫంక్షన్ (ఫంక్షన్) కోడ్ (కోడ్), శోధనలు, కనిష్ట, సగటును క్రమబద్ధీకరించే ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్ (టెంప్లేట్) ను వ్రాయవచ్చు. వాటన్నింటినీ సాధారణ రూపంలో వ్రాయవచ్చు మరియు వెంటనే ఆ రకాన్ని బట్టి ఉంటుంది.
ఇప్పుడు, డేటా స్ట్రక్చర్ పరంగా కోడ్ పునర్వినియోగాన్ని పరిశీలిస్తే మనం ఎక్కువ చేయవచ్చు.
ఇప్పుడు, డేటా స్ట్రక్చర్ పరంగా కోడ్ పునర్వినియోగాన్ని పరిశీలిస్తే మనం ఎక్కువ చేయవచ్చు.
ఉదాహరణకు, ఒక స్టాక్ను పరిగణించండి, మొదటిది చివరిది.
ఉదాహరణకు, ఒక స్టాక్ను పరిగణించండి, మొదటిది చివరిది.
ఉదాహరణకు మీరు పేర్చే అనేక సమస్యలు ఉన్నాయి, శీర్షాన్ని బ్యాక్ట్రాక్ చేయడానికి అక్షరాల స్టాక్ అవసరం.
ఉదాహరణకు మీరు పేర్చే అనేక సమస్యలు ఉన్నాయి, శీర్షాన్ని బ్యాక్ట్రాక్ చేయడానికి అక్షరాల స్టాక్ అవసరం.
పోస్ట్ఫిక్స్లోని వ్యక్తీకరణ మరియు ఇన్ఫిక్స్ వ్యక్తీకరణకు మళ్ళీ అక్షరాల స్టాక్ అవసరం.
పోస్ట్ఫిక్స్లోని వ్యక్తీకరణ మరియు ఇన్ఫిక్స్ వ్యక్తీకరణకు మళ్ళీ అక్షరాల స్టాక్ అవసరం.
ఉపసర్గ వ్యక్తీకరణల మూల్యాంకనానికి మనం అంచనా వేయదలిచిన పూర్ణాంక, డబుల్, సంక్లిష్టమైన వివిధ రకాల రకాలు అవసరం.
ఉపసర్గ వ్యక్తీకరణల మూల్యాంకనానికి మనం అంచనా వేయదలిచిన పూర్ణాంక, డబుల్, సంక్లిష్టమైన వివిధ రకాల రకాలు అవసరం.
మూడు లోతుకు మొదటి మూడు నోడ్ల యొక్క నోడ్ పాయింటర్ (రకం) స్టాక్ అవసరం.
మూడు లోతుకు మొదటి మూడు నోడ్ల యొక్క నోడ్ పాయింటర్ (రకం) స్టాక్ అవసరం.
అనేక సమస్యలు ఉండవచ్చు, దీనికి ఒక నిర్దిష్ట సమస్య పరిష్కారం కోసం వివిధ రకాల స్టాక్లు అవసరం.
అనేక సమస్యలు ఉండవచ్చు, దీనికి ఒక నిర్దిష్ట సమస్య పరిష్కారం కోసం వివిధ రకాల స్టాక్లు అవసరం.
ఇప్పుడు, మనకు అవసరమైనప్పుడు ఈ రకానికి ఒక స్టాక్ క్లాస్ రాయడం ఒక ఎంపిక, కాని మనం చూస్తున్నది కోడ్ యొక్క స్టాక్, దీనిని ఉదారంగా పిలుస్తారు, మనకు కావలసిన నిర్దిష్ట రకాన్ని వెంటనే ఇవ్వవచ్చు, ఎందుకంటే, పుష్, పాప్, టాప్, ఖాళీ మరియు మొదలైన ఇంటర్ఫేస్ల సమితితో స్టాక్ రూపంలో ఒక భావన మొదటిది., స్టాక్ ఉపయోగిస్తున్న నిర్దిష్ట మూలకం రకాన్ని బట్టి ఇది మారదు.
ఇప్పుడు, మనకు అవసరమైనప్పుడు ఈ రకానికి ఒక స్టాక్ క్లాస్ రాయడం ఒక ఎంపిక, కాని మనం చూస్తున్నది కోడ్ యొక్క స్టాక్, దీనిని ఉదారంగా పిలుస్తారు, మనకు కావలసిన నిర్దిష్ట రకాన్ని వెంటనే ఇవ్వవచ్చు, ఎందుకంటే, పుష్, పాప్, టాప్, ఖాళీ మరియు మొదలైన ఇంటర్ఫేస్ల సమితితో స్టాక్ రూపంలో ఒక భావన మొదటిది., స్టాక్ ఉపయోగిస్తున్న నిర్దిష్ట మూలకం రకాన్ని బట్టి ఇది మారదు.
మీరు మరింత చూస్తే క్యూలో అదే సారూప్యతను మీరు కనుగొంటారు. ప్రాసెస్ షెడ్యూలింగ్ ఉపయోగించి టాస్క్ షెడ్యూలింగ్. క్యూ యూజర్కు చాలా సమస్యలు అవసరం, దీనికి స్టాక్ (స్టాక్) క్యూ అమలు చేయడం వంటి జాబితా అవసరం, అప్పుడు ఏదైనా వస్తువుల సేకరణలు మరియు మొదలైనవి.
మీరు మరింత చూస్తే క్యూలో అదే సారూప్యతను మీరు కనుగొంటారు. ప్రాసెస్ షెడ్యూలింగ్ ఉపయోగించి టాస్క్ షెడ్యూలింగ్. క్యూ యూజర్కు చాలా సమస్యలు అవసరం, దీనికి స్టాక్ (స్టాక్) క్యూ అమలు చేయడం వంటి జాబితా అవసరం, అప్పుడు ఏదైనా వస్తువుల సేకరణలు మరియు మొదలైనవి.
క్లాస్ టెంప్లేట్లు కోడ్ పునర్వినియోగానికి ఒక పరిష్కారం, ఇక్కడ మీకు ఒకే ఇంటర్ఫేస్ మరియు అదే లేదా చాలా దగ్గరి అల్గోరిథంలు, సారూప్య అల్గోరిథంలు ఉన్న డేటా స్ట్రక్చర్ యొక్క సాధారణ భాగాన్ని మేము గుర్తిస్తాము, కాని మూలకం రకాలు కారణంగా అమలు భిన్నంగా ఉండాలి, వాటిని కలపడం సాధారణ సాధారణ తరగతి టెంప్లేట్ యొక్క సందర్భం.
క్లాస్ టెంప్లేట్లు కోడ్ పునర్వినియోగానికి ఒక పరిష్కారం, ఇక్కడ మీకు ఒకే ఇంటర్ఫేస్ మరియు అదే లేదా చాలా దగ్గరి అల్గోరిథంలు, సారూప్య అల్గోరిథంలు ఉన్న డేటా స్ట్రక్చర్ యొక్క సాధారణ భాగాన్ని మేము గుర్తిస్తాము, కాని మూలకం రకాలు కారణంగా అమలు భిన్నంగా ఉండాలి, వాటిని కలపడం సాధారణ సాధారణ తరగతి టెంప్లేట్ యొక్క సందర్భం.
కాబట్టి, స్పష్టంగా చెప్పాలంటే, ఇది ఎడమ మరియు కుడి, మీరు ఇక్కడ చూస్తే అది అక్షరాల స్టాక్, ఇది పాత్ర.
కాబట్టి, స్పష్టంగా చెప్పాలంటే, ఇది ఎడమ మరియు కుడి, మీరు ఇక్కడ చూస్తే అది అక్షరాల స్టాక్, ఇది పాత్ర.
ఇవి ప్రత్యేకమైన కోడ్ పంక్తుల ఉల్లేఖనాలుగా చూపించబడతాయి, ఇవి రకం పరిజ్ఞానం అవసరం మరియు పూర్ణాంకాల స్టాక్, కాబట్టి ఇవి మీకు అవసరమైన పంక్తులు.
ఇవి ప్రత్యేకమైన కోడ్ పంక్తుల ఉల్లేఖనాలుగా చూపించబడతాయి, ఇవి రకం పరిజ్ఞానం అవసరం మరియు పూర్ణాంకాల స్టాక్, కాబట్టి ఇవి మీకు అవసరమైన పంక్తులు.
కాబట్టి మీరు ఇక్కడ పూర్ణాంకం, ఇక్కడ నాలుగు, మీరు ఇక్కడ నాలుగు, మీరు ఇక్కడ నాలుగు, మరియు ఇక్కడ పూర్ణాంకం.
కాబట్టి మీరు ఇక్కడ పూర్ణాంకం, ఇక్కడ నాలుగు, మీరు ఇక్కడ నాలుగు, మీరు ఇక్కడ నాలుగు, మరియు ఇక్కడ పూర్ణాంకం.
ఇది కాకుండా, మిగిలిన కోడ్ కూడా ఒక ఫంక్షన్ (ఫంక్షన్) విషయంలో మాదిరిగానే టైప్ వేరియబుల్తో భర్తీ చేయకపోతే అదే విధంగా ఉంటుంది.
ఇది కాకుండా, మిగిలిన కోడ్ కూడా ఒక ఫంక్షన్ (ఫంక్షన్) విషయంలో మాదిరిగానే టైప్ వేరియబుల్తో భర్తీ చేయకపోతే అదే విధంగా ఉంటుంది.
ఇది తరగతి టెంప్లేట్ను రకంతో ప్రామాణీకరించిన మరియు సభ్యుల విధులను కలిగి ఉంటుంది.
ఇది తరగతి టెంప్లేట్ను రకంతో ప్రామాణీకరించిన మరియు సభ్యుల విధులను కలిగి ఉంటుంది.
మిగిలిన నిర్వచనం వివరాల కోసం మరియు ఉదాహరణను పరిశీలిస్తుంది.
మిగిలిన నిర్వచనం వివరాల కోసం మరియు ఉదాహరణను పరిశీలిస్తుంది.
కాబట్టి మనం చేసే స్టాక్ కోసం, మేము ఈ రకమైన మూలకం రకాన్ని T గా పారామితి చేస్తాము.
కాబట్టి మనం చేసే స్టాక్ కోసం, మేము ఈ రకమైన మూలకం రకాన్ని T గా పారామితి చేస్తాము.
మీరు చేసేటప్పుడు మీకు అవసరమైన స్థలాలను మీరు చూడవచ్చు కాబట్టి నేను టి అని ఎలిమెంట్ రకాన్ని తెలుసుకోవాలి. నేను అగ్రస్థానంలో ఉన్నప్పుడు ఎలిమెంట్ రకాన్ని తెలుసుకోవాలి, పాప్ చేయండి. తెలుసుకోవలసిన అవసరం లేదు, ఖలీ అవసరం లేదు తెలుసు.
మీరు చేసేటప్పుడు మీకు అవసరమైన స్థలాలను మీరు చూడవచ్చు కాబట్టి నేను టి అని ఎలిమెంట్ రకాన్ని తెలుసుకోవాలి. నేను అగ్రస్థానంలో ఉన్నప్పుడు ఎలిమెంట్ రకాన్ని తెలుసుకోవాలి, పాప్ చేయండి. తెలుసుకోవలసిన అవసరం లేదు, ఖలీ అవసరం లేదు తెలుసు.
ఇది T రకం కాబట్టి, నేను దానిని ప్రామాణీకరించాను మరియు ఒక ఫంక్షన్ (ఫంక్షన్) విషయంలో నేను చేసినట్లుగానే, టెంప్లేట్ క్లాస్ T సందర్భంలో ఇది ఒక టెంప్లేట్ (టెంప్లేట్) అని చెప్పాను. ఒక వేరియబుల్.
ఇది T రకం కాబట్టి, నేను దానిని ప్రామాణీకరించాను మరియు ఒక ఫంక్షన్ (ఫంక్షన్) విషయంలో నేను చేసినట్లుగానే, టెంప్లేట్ క్లాస్ T సందర్భంలో ఇది ఒక టెంప్లేట్ (టెంప్లేట్) అని చెప్పాను. ఒక వేరియబుల్.
మరియు ఈ సభ్యుల విధులను సూచించడానికి ఆ టెంప్లేట్ వేరియబుల్ ఉపయోగించబడుతుంది.
మరియు ఈ సభ్యుల విధులను సూచించడానికి ఆ టెంప్లేట్ వేరియబుల్ ఉపయోగించబడుతుంది.
కాబట్టి, ఇది టెంప్లేట్ చేయబడిన స్టాక్ను చేస్తుంది, ఇది దేనికైనా వెంటనే చేయవచ్చు.
కాబట్టి, ఇది టెంప్లేట్ చేయబడిన స్టాక్ను చేస్తుంది, ఇది దేనికైనా వెంటనే చేయవచ్చు.
వాస్తవానికి, ఈ స్టాక్ టెంప్లేట్ పని చేయడానికి, మనకు కొన్ని లక్షణాలను సంతృప్తి పరచడానికి టైప్ టి, టైప్ వేరియబుల్ టి అవసరం.
వాస్తవానికి, ఈ స్టాక్ టెంప్లేట్ పని చేయడానికి, మనకు కొన్ని లక్షణాలను సంతృప్తి పరచడానికి టైప్ టి, టైప్ వేరియబుల్ టి అవసరం.
ఉదాహరణకు, అంశం T రకం మరియు డేటా I రకం T మరియు డేటా మూలకం.
ఉదాహరణకు, అంశం T రకం మరియు డేటా I రకం T మరియు డేటా మూలకం.
అందువల్ల ఇక్కడ ఒక నియామకం సాధ్యమేనని మేము చూస్తాము.
అందువల్ల ఇక్కడ ఒక నియామకం సాధ్యమేనని మేము చూస్తాము.
కాపీ అసైన్మెంట్ ఆపరేటర్ ఈ ప్రదేశంలో సాధ్యమవుతుంది, అది లేకుండా మీరు వెంటనే ఒక నిర్దిష్ట రకం స్టాక్ను పంపలేరు.
కాపీ అసైన్మెంట్ ఆపరేటర్ ఈ ప్రదేశంలో సాధ్యమవుతుంది, అది లేకుండా మీరు వెంటనే ఒక నిర్దిష్ట రకం స్టాక్ను పంపలేరు.
ఇది స్టాక్ డాట్ హెడర్లోకి వెళుతుందని uming హిస్తూ, దీన్ని ఉపయోగించడం మనం చూస్తే, మనం ఫంక్షన్ (ఫంక్షన్) ను వేగవంతం చేసే విధంగానే నాకు వెంటనే ఇష్టం. మేము దానిని పాత్ర కోసం పిలుస్తాము.
ఇది స్టాక్ డాట్ హెడర్లోకి వెళుతుందని uming హిస్తూ, దీన్ని ఉపయోగించడం మనం చూస్తే, మనం ఫంక్షన్ (ఫంక్షన్) ను వేగవంతం చేసే విధంగానే నాకు వెంటనే ఇష్టం. మేము దానిని పాత్ర కోసం పిలుస్తాము.
ఇది ఇప్పుడు నేను ఉపయోగించగల అక్షరాల స్టాక్ను ఇస్తుంది.
ఇది ఇప్పుడు నేను ఉపయోగించగల అక్షరాల స్టాక్ను ఇస్తుంది.
నేను ఈ కోడ్ను వివరించడానికి వెళ్ళను. మేము ఈ కోడ్ను చాలాసార్లు చూశాము, ఒత్తిడిని తిప్పికొట్టడానికి మేము ఆ స్టాక్ను ఉపయోగించవచ్చు.
నేను ఈ కోడ్ను వివరించడానికి వెళ్ళను. మేము ఈ కోడ్ను చాలాసార్లు చూశాము, ఒత్తిడిని తిప్పికొట్టడానికి మేము ఆ స్టాక్ను ఉపయోగించవచ్చు.
అదే శీర్షికతో డాట్ h ని స్టాక్ చేయండి.
అదే శీర్షికతో డాట్ h ని స్టాక్ చేయండి.
ఇప్పుడు నేను ప్రత్యేక అప్లికేషన్ రాయగలను.
ఇప్పుడు నేను ప్రత్యేక అప్లికేషన్ రాయగలను.
కాబట్టి, పోస్ట్ఫిక్స్ వ్యక్తీకరణలను అంచనా వేయడానికి నేను వేరే అప్లికేషన్ను వ్రాయగలిగే అదే టెంప్లేట్ చేయబడిన స్టాక్ కోడ్ వలె ఇదే శీర్షిక.
కాబట్టి, పోస్ట్ఫిక్స్ వ్యక్తీకరణలను అంచనా వేయడానికి నేను వేరే అప్లికేషన్ను వ్రాయగలిగే అదే టెంప్లేట్ చేయబడిన స్టాక్ కోడ్ వలె ఇదే శీర్షిక.
ఇక్కడ వ్యక్తీకరణలు పూర్ణాంకాలు కాబట్టి, నాకు పూర్ణాంకం యొక్క వ్యక్తీకరణ విలువను కలిగి ఉండే స్టాక్ అవసరం, కనుక ఇది విలీనం చేయబడింది.
ఇక్కడ వ్యక్తీకరణలు పూర్ణాంకాలు కాబట్టి, నాకు పూర్ణాంకం యొక్క వ్యక్తీకరణ విలువను కలిగి ఉండే స్టాక్ అవసరం, కనుక ఇది విలీనం చేయబడింది.
నేను సి తో చేస్తే, నాకు రెండు వేర్వేరు స్టాక్ ఇంప్లిమెంటేషన్లు, రివర్స్ స్ట్రింగ్ కోసం నాలుగు బేస్ ఇంప్లిమెంటేషన్లు మరియు ఈ ప్రత్యేకమైన పోస్ట్ ఫిక్స్ మూల్యాంకన సమస్య కోసం ఒక ఇంటెంట్ రివర్స్ రివర్స్ ఇంప్లిమెంటేషన్ అవసరం, కానీ నేను అదే టెంప్లేట్ (స్టాక్) ని నిర్వచించాను రెండు వేర్వేరు రకాలతో త్వరగా.
నేను సి తో చేస్తే, నాకు రెండు వేర్వేరు స్టాక్ ఇంప్లిమెంటేషన్లు, రివర్స్ స్ట్రింగ్ కోసం నాలుగు బేస్ ఇంప్లిమెంటేషన్లు మరియు ఈ ప్రత్యేకమైన పోస్ట్ ఫిక్స్ మూల్యాంకన సమస్య కోసం ఒక ఇంటెంట్ రివర్స్ రివర్స్ ఇంప్లిమెంటేషన్ అవసరం, కానీ నేను అదే టెంప్లేట్ (స్టాక్) ని నిర్వచించాను రెండు వేర్వేరు రకాలతో త్వరగా.
ఇది తరగతి టెంప్లేట్ యొక్క ప్రధాన బలం మరియు ఇది డేటా స్ట్రక్చర్ల పరంగా ప్రత్యేకంగా మరియు వేర్వేరు యుటిలిటీ క్లాసులలో మాకు చాలా సాధారణీకరణను ఇస్తుంది.
ఇది తరగతి టెంప్లేట్ యొక్క ప్రధాన బలం మరియు ఇది డేటా స్ట్రక్చర్ల పరంగా ప్రత్యేకంగా మరియు వేర్వేరు యుటిలిటీ క్లాసులలో మాకు చాలా సాధారణీకరణను ఇస్తుంది.
ఇప్పుడు, సహజంగా నేను ఈ ఆవశ్యకత చేసినప్పుడు నేను చెప్పినట్లు.
ఇప్పుడు, సహజంగా నేను ఈ ఆవశ్యకత చేసినప్పుడు నేను చెప్పినట్లు.
ఇంతకుముందు మేము దీనిని ఫంక్షన్ టెంప్లేట్ల కోసం చూశాము, ఇప్పుడు మీరు దీన్ని క్లాస్ టెంప్లేట్ కోసం చూస్తున్నారు, పరామితి రకం టెంప్లేట్లో ఉపయోగించబడిందని మేము నిర్ధారించుకోవాలి, అవి ఏ రకమైనవి అయినా కొన్ని లక్షణాలను సంతృప్తిపరుస్తాయి.
ఇంతకుముందు మేము దీనిని ఫంక్షన్ టెంప్లేట్ల కోసం చూశాము, ఇప్పుడు మీరు దీన్ని క్లాస్ టెంప్లేట్ కోసం చూస్తున్నారు, పరామితి రకం టెంప్లేట్లో ఉపయోగించబడిందని మేము నిర్ధారించుకోవాలి, అవి ఏ రకమైనవి అయినా కొన్ని లక్షణాలను సంతృప్తిపరుస్తాయి.
ఇతర పారామీటర్ చేయబడిన రకాలు కూడా ఉండవచ్చు, అవి సొంతంగా టైప్ చేయవచ్చు, కాని తరగతి అమలు యొక్క ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్ (టెంప్లేట్) అమలుకు అవసరమైన పద్ధతులకు అవి మద్దతు ఇవ్వడం ముఖ్యం.
ఇతర పారామీటర్ చేయబడిన రకాలు కూడా ఉండవచ్చు, అవి సొంతంగా టైప్ చేయవచ్చు, కాని తరగతి అమలు యొక్క ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్ (టెంప్లేట్) అమలుకు అవసరమైన పద్ధతులకు అవి మద్దతు ఇవ్వడం ముఖ్యం.
కాబట్టి, లక్షణాలు ఉన్నందున, వారు కన్స్ట్రక్టర్కు మద్దతు ఇవ్వవలసి ఉంటుంది, వారు వేర్వేరు ఆపరేటర్లకు మద్దతు ఇవ్వవలసి ఉంటుంది మరియు మేము దాని ఉదాహరణలను చూశాము.
కాబట్టి, లక్షణాలు ఉన్నందున, వారు కన్స్ట్రక్టర్కు మద్దతు ఇవ్వవలసి ఉంటుంది, వారు వేర్వేరు ఆపరేటర్లకు మద్దతు ఇవ్వవలసి ఉంటుంది మరియు మేము దాని ఉదాహరణలను చూశాము.
అవి ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్ (టెంప్లేట్) అలాగే క్లాస్ టెంప్లేట్ (టెంప్లేట్) రెండింటినీ అనుసరించాల్సిన ప్రాథమిక రకం లక్షణాలు.
అవి ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్ (టెంప్లేట్) అలాగే క్లాస్ టెంప్లేట్ (టెంప్లేట్) రెండింటినీ అనుసరించాల్సిన ప్రాథమిక రకం లక్షణాలు.
కాబట్టి, ఫంక్షన్ టెంప్లేట్ విషయంలో మీరు చూసినది ఇదే, ఇది మీ రీక్యాప్ కోసం మాత్రమే.
కాబట్టి, ఫంక్షన్ టెంప్లేట్ విషయంలో మీరు చూసినది ఇదే, ఇది మీ రీక్యాప్ కోసం మాత్రమే.
తరగతి టెంప్లేట్ సందర్భంలో, ఆవశ్యకతను సాధారణంగా స్పష్టంగా తీర్చాల్సిన అవసరం ఉంది మరియు ఇది ఒక తరగతి కనుక, తరగతిని వాస్తవంగా అందించకుండానే ఫార్వార్డ్ చేయడం చాలా సాధ్యమే. వాస్తవానికి నేను పిలువబడేదాన్ని వ్రాయగలను అసంపూర్ణ స్టాక్ రకం.
తరగతి టెంప్లేట్ సందర్భంలో, ఆవశ్యకతను సాధారణంగా స్పష్టంగా తీర్చాల్సిన అవసరం ఉంది మరియు ఇది ఒక తరగతి కనుక, తరగతిని వాస్తవంగా అందించకుండానే ఫార్వార్డ్ చేయడం చాలా సాధ్యమే. వాస్తవానికి నేను పిలువబడేదాన్ని వ్రాయగలను అసంపూర్ణ స్టాక్ రకం.
టైప్ టి ద్వారా ప్రామాణికమైన స్టాక్ అని పిలువబడే తరగతి ఉందని వ్యవస్థకు చెప్పడం మరింత ప్రకటన అని ఇది చెప్పింది, అయితే ఇది పద్ధతులు ఏమిటో చెప్పలేదు మరియు మొదలైనవి.
టైప్ టి ద్వారా ప్రామాణికమైన స్టాక్ అని పిలువబడే తరగతి ఉందని వ్యవస్థకు చెప్పడం మరింత ప్రకటన అని ఇది చెప్పింది, అయితే ఇది పద్ధతులు ఏమిటో చెప్పలేదు మరియు మొదలైనవి.
కాబట్టి, దానితో.
కాబట్టి, దానితో.
నేను వస్తువును తక్షణం చేయడానికి ప్రయత్నిస్తే, నేను లోపం పొందుతాను, ఎందుకంటే కన్స్ట్రక్టర్, డిస్ట్రాయర్, ఇతర ఆపరేటర్లు మరియు సభ్యులను నాకు తెలియకపోతే ఆ వస్తువును తక్షణం చేయలేము.
నేను వస్తువును తక్షణం చేయడానికి ప్రయత్నిస్తే, నేను లోపం పొందుతాను, ఎందుకంటే కన్స్ట్రక్టర్, డిస్ట్రాయర్, ఇతర ఆపరేటర్లు మరియు సభ్యులను నాకు తెలియకపోతే ఆ వస్తువును తక్షణం చేయలేము.
కానీ నేను ఇప్పటికీ ఈ రకానికి పాయింటర్ను నిర్వచించగలను; నేను ఈ రకమైన సూచనను నిర్వచించగలను. కాబట్టి రివర్స్ స్ట్రింగ్ ఫంక్షన్ (ఫంక్షన్) ను నేను నిర్వచించగలను,
కానీ నేను ఇప్పటికీ ఈ రకానికి పాయింటర్ను నిర్వచించగలను; నేను ఈ రకమైన సూచనను నిర్వచించగలను. కాబట్టి రివర్స్ స్ట్రింగ్ ఫంక్షన్ (ఫంక్షన్) ను నేను నిర్వచించగలను,
అది నిజంగా ఏమిటో నాకు తెలియనప్పుడు ఈ రకాన్ని సూచనగా తీసుకుంటుంది.
అది నిజంగా ఏమిటో నాకు తెలియనప్పుడు ఈ రకాన్ని సూచనగా తీసుకుంటుంది.
నేను స్టాక్ (స్టాక్) ఆపరేషన్లను ఉపయోగించాలనుకున్నప్పుడు రివర్స్ స్ట్రింగ్ ఫంక్షన్ (ఫంక్షన్) యొక్క బాడీని అమలు చేయాలనుకుంటే సహజంగానే నేను స్టాక్ (స్టాక్) అంటే ఏమిటో తెలుసుకోవాలి.
నేను స్టాక్ (స్టాక్) ఆపరేషన్లను ఉపయోగించాలనుకున్నప్పుడు రివర్స్ స్ట్రింగ్ ఫంక్షన్ (ఫంక్షన్) యొక్క బాడీని అమలు చేయాలనుకుంటే సహజంగానే నేను స్టాక్ (స్టాక్) అంటే ఏమిటో తెలుసుకోవాలి.
ఆవశ్యకత పరంగా, సోమరితనం అత్యవసరం అనేది చాలా ఉపయోగకరంగా ఉంటుందని మీకు తెలుసు.
ఆవశ్యకత పరంగా, సోమరితనం అత్యవసరం అనేది చాలా ఉపయోగకరంగా ఉంటుందని మీకు తెలుసు.
...
@@ -107,143 +63,73 @@
...
@@ -107,143 +63,73 @@
కానీ ఆ రకం ఏమిటో తెలియదు, రకం ఎలా అమలు చేయబడిందో తెలియదు మరియు పట్టించుకోదు ఎందుకంటే ఇది కేవలం సూచనను చూస్తోంది.
కానీ ఆ రకం ఏమిటో తెలియదు, రకం ఎలా అమలు చేయబడిందో తెలియదు మరియు పట్టించుకోదు ఎందుకంటే ఇది కేవలం సూచనను చూస్తోంది.
నేను ఈ మెయిన్ కలిగి ఉంటే, నేను నిజంగా ఈ ఫంక్షన్ను ప్రారంభించగలను, ఎందుకంటే నేను తెలుసుకోవలసినది శరీరం తరువాత రాగల ఫంక్షన్ (ఫంక్షన్) యొక్క సంతకం, కాబట్టి నేను ఉద్దేశపూర్వకంగా శరీరానికి తరువాతి సమయం ఇచ్చాను. ప్రధాన శరీరాన్ని తెలుసుకోవలసిన అవసరం లేదని మీరు చూపిస్తారు.
నేను ఈ మెయిన్ కలిగి ఉంటే, నేను నిజంగా ఈ ఫంక్షన్ను ప్రారంభించగలను, ఎందుకంటే నేను తెలుసుకోవలసినది శరీరం తరువాత రాగల ఫంక్షన్ (ఫంక్షన్) యొక్క సంతకం, కాబట్టి నేను ఉద్దేశపూర్వకంగా శరీరానికి తరువాతి సమయం ఇచ్చాను. ప్రధాన శరీరాన్ని తెలుసుకోవలసిన అవసరం లేదని మీరు చూపిస్తారు.
అయితే, నేను ఇక్కడ స్టాక్ యొక్క ఉదాహరణను రిఫరెన్స్ పరామితిగా ఇవ్వడం అవసరం.
అయితే, నేను ఇక్కడ స్టాక్ యొక్క ఉదాహరణను రిఫరెన్స్ పరామితిగా ఇవ్వడం అవసరం.
కాబట్టి, ఈ స్టాక్ను వెంటనే చేయాల్సిన అవసరం ఉంది.
కాబట్టి, ఈ స్టాక్ను వెంటనే చేయాల్సిన అవసరం ఉంది.
స్టాక్ (స్టాక్) యొక్క నిర్వచనం తెలియకుండా మీరు రివర్స్ స్ట్రింగ్ యొక్క సంతకాన్ని నిర్వచించగలిగినప్పుడు, మీరు ప్రధాన ఫంక్షన్ (ఫంక్షన్) ను వ్రాయలేరు, ఎందుకంటే మీకు స్టాక్ (స్టాక్) యొక్క నిర్వచనం తెలియదు.
స్టాక్ (స్టాక్) యొక్క నిర్వచనం తెలియకుండా మీరు రివర్స్ స్ట్రింగ్ యొక్క సంతకాన్ని నిర్వచించగలిగినప్పుడు, మీరు ప్రధాన ఫంక్షన్ (ఫంక్షన్) ను వ్రాయలేరు, ఎందుకంటే మీకు స్టాక్ (స్టాక్) యొక్క నిర్వచనం తెలియదు.
కాబట్టి స్టాక్ యొక్క నిర్వచనం స్టాక్ యొక్క తక్షణానికి ముందు ఉండాలి.
కాబట్టి స్టాక్ యొక్క నిర్వచనం స్టాక్ యొక్క తక్షణానికి ముందు ఉండాలి.
ఎందుకంటే ఇప్పుడు మీకు ఆబ్జెక్ట్ ఉదాహరణ ఉంటే, మేము నిర్మించగలగాలి, అది విధ్వంసం చేయగల సామర్థ్యం ఉండాలి, అది అన్ని వివిధ విధులను అమలు చేయగలగాలి.
ఎందుకంటే ఇప్పుడు మీకు ఆబ్జెక్ట్ ఉదాహరణ ఉంటే, మేము నిర్మించగలగాలి, అది విధ్వంసం చేయగల సామర్థ్యం ఉండాలి, అది అన్ని వివిధ విధులను అమలు చేయగలగాలి.
కాబట్టి ఇది ఇలా ఉంది, క్లాస్ టెంప్లేట్ యొక్క ఆవశ్యకత మీరు ఎల్లప్పుడూ అన్నింటినీ ఒకేసారి చేయాల్సిన అవసరం లేదని నేను హైలైట్ చేయాలనుకుంటున్నాను.
కాబట్టి ఇది ఇలా ఉంది, క్లాస్ టెంప్లేట్ యొక్క ఆవశ్యకత మీరు ఎల్లప్పుడూ అన్నింటినీ ఒకేసారి చేయాల్సిన అవసరం లేదని నేను హైలైట్ చేయాలనుకుంటున్నాను.
మీరు క్లాస్ రిఫరెన్స్ లేదా తాత్కాలిక క్లాస్ని సూచిస్తుంటే, మీరు క్లాస్ యొక్క పూర్తి నిర్వచనాన్ని తెలుసుకోవలసిన అవసరం లేకపోవచ్చు, మీరు క్లాస్ డిక్లరేషన్ను తదుపరి డిక్లరేషన్తో మాత్రమే నిర్వహించవచ్చు, ఇది తాత్కాలికమేమిటి, ఏమిటి వివిధ రకాలు మొదలైనవి.
మీరు క్లాస్ రిఫరెన్స్ లేదా తాత్కాలిక క్లాస్ని సూచిస్తుంటే, మీరు క్లాస్ యొక్క పూర్తి నిర్వచనాన్ని తెలుసుకోవలసిన అవసరం లేకపోవచ్చు, మీరు క్లాస్ డిక్లరేషన్ను తదుపరి డిక్లరేషన్తో మాత్రమే నిర్వహించవచ్చు, ఇది తాత్కాలికమేమిటి, ఏమిటి వివిధ రకాలు మొదలైనవి.
ఇది ప్రాథమిక తరగతి యొక్క టెంప్లేట్.
ఇది ప్రాథమిక తరగతి యొక్క టెంప్లేట్.
తరువాత మేము ఏదో చూపిస్తాము, ఇది మీ పరిపూర్ణతపై అవగాహన కోసం, నేను లోతుగా వెళ్ళకూడదు.
తరువాత మేము ఏదో చూపిస్తాము, ఇది మీ పరిపూర్ణతపై అవగాహన కోసం, నేను లోతుగా వెళ్ళకూడదు.
టెంప్లేట్ (టెంప్లేట్) పరంగా ఈ ఫంక్షన్ (ఫంక్షన్) ఎలా ఉంటుందో చూపించడానికి ఇది మాత్రమే. గరిష్ట ఫంక్షన్ (ఫంక్షన్) లో ఒక రకమైన పారామితి (పరామితి) టి ఉంటే మరియు నాలుగు నక్షత్రాలకు మనకు వేరే ప్రవర్తన ఉందని మేము చూశాము. కావాలనుకుంటే, అతను ప్రత్యేకత కలిగి ఉన్నాడు మరియు టీని కేవలం నాలుగు నక్షత్రాలకు మరియు మరొకదానికి మార్చాడు; దాని కోసం ఫంక్షన్ యొక్క నిర్వచనం.
టెంప్లేట్ (టెంప్లేట్) పరంగా ఈ ఫంక్షన్ (ఫంక్షన్) ఎలా ఉంటుందో చూపించడానికి ఇది మాత్రమే. గరిష్ట ఫంక్షన్ (ఫంక్షన్) లో ఒక రకమైన పారామితి (పరామితి) టి ఉంటే మరియు నాలుగు నక్షత్రాలకు మనకు వేరే ప్రవర్తన ఉందని మేము చూశాము. కావాలనుకుంటే, అతను ప్రత్యేకత కలిగి ఉన్నాడు మరియు టీని కేవలం నాలుగు నక్షత్రాలకు మరియు మరొకదానికి మార్చాడు; దాని కోసం ఫంక్షన్ యొక్క నిర్వచనం.
ఇది తరగతికి కూడా సాధ్యమే మరియు నేను ఒకటి కంటే ఎక్కువ పారామితులను కలిగి ఉంటే నేను ఆ పారామితులను పాక్షికంగా స్పెషలైజ్ చేయగలుగుతున్నాను, కాబట్టి నేను ఇక్కడ వివరించడానికి ప్రయత్నిస్తున్నాను.
ఇది తరగతికి కూడా సాధ్యమే మరియు నేను ఒకటి కంటే ఎక్కువ పారామితులను కలిగి ఉంటే నేను ఆ పారామితులను పాక్షికంగా స్పెషలైజ్ చేయగలుగుతున్నాను, కాబట్టి నేను ఇక్కడ వివరించడానికి ప్రయత్నిస్తున్నాను.
కాబట్టి, ఇక్కడ విద్యార్థి తరగతి T1 మరియు T2 అనే రెండు రకాలుగా టెంప్లేట్ చేయబడిన ఒక టెంప్లేట్ ఉంది.
కాబట్టి, ఇక్కడ విద్యార్థి తరగతి T1 మరియు T2 అనే రెండు రకాలుగా టెంప్లేట్ చేయబడిన ఒక టెంప్లేట్ ఉంది.
T1 అనేది ఒక రకమైన పాత్ర, T2 పేరు యొక్క రకం.
T1 అనేది ఒక రకమైన పాత్ర, T2 పేరు యొక్క రకం.
ఒక పాత్ర పూర్ణాంకం అయ్యే అవకాశం ఉంది, అది స్ట్రింగ్ కావచ్చు.
ఒక పాత్ర పూర్ణాంకం అయ్యే అవకాశం ఉంది, అది స్ట్రింగ్ కావచ్చు.
పేరు C ++ లో స్ట్రింగ్ రకం కావచ్చు లేదా ఇది నాలుగు నక్షత్రాలు, సి స్ట్రింగ్ రకం మరియు మొదలైనవి కావచ్చు.
పేరు C ++ లో స్ట్రింగ్ రకం కావచ్చు లేదా ఇది నాలుగు నక్షత్రాలు, సి స్ట్రింగ్ రకం మరియు మొదలైనవి కావచ్చు.
ఇవి మన వద్ద ఉన్న రెండు వేర్వేరు రకాలు.
ఇవి మన వద్ద ఉన్న రెండు వేర్వేరు రకాలు.
కాబట్టి, మీరు చేసేది ప్రాథమికంగా, నేను ఇచ్చిన కార్యాచరణ చాలా లేదు, మీరు ఒకదాన్ని సృష్టించి, ఈ రెండు ఫీల్డ్లను ప్రింట్ చేయగల ముద్రణను కలిగి ఉన్నారు, కాబట్టి ఉదాహరణ కోసం మాత్రమే.
కాబట్టి, మీరు చేసేది ప్రాథమికంగా, నేను ఇచ్చిన కార్యాచరణ చాలా లేదు, మీరు ఒకదాన్ని సృష్టించి, ఈ రెండు ఫీల్డ్లను ప్రింట్ చేయగల ముద్రణను కలిగి ఉన్నారు, కాబట్టి ఉదాహరణ కోసం మాత్రమే.
ఇప్పుడు, ఆసక్తికరమైనది ఏమిటంటే, ఈ నిపుణుడు మనం ఎక్కడ పాక్షికంగా ఉన్నాము? T1 మరియు T2 రెండు పారామితులు మరియు నేను పాక్షికంగా ప్రత్యేకత కలిగి ఉన్నాను, నాకు ఇప్పటికీ T1 పరామితి అయిన ఒక టెంప్లేట్ ఉంది, కానీ T2 స్పష్టంగా నాలుగు నక్షత్రాలను కలిగి ఉంది మరియు తరువాత నేను దానిని ఉపయోగించాను.
ఇప్పుడు, ఆసక్తికరమైనది ఏమిటంటే, ఈ నిపుణుడు మనం ఎక్కడ పాక్షికంగా ఉన్నాము? T1 మరియు T2 రెండు పారామితులు మరియు నేను పాక్షికంగా ప్రత్యేకత కలిగి ఉన్నాను, నాకు ఇప్పటికీ T1 పరామితి అయిన ఒక టెంప్లేట్ ఉంది, కానీ T2 స్పష్టంగా నాలుగు నక్షత్రాలను కలిగి ఉంది మరియు తరువాత నేను దానిని ఉపయోగించాను.
టి 2 విషయంలో, నేను నాలుగు నక్షత్రాలను ఉపయోగిస్తున్నాను. ఆ నాలుగు నక్షత్రాలను నేను స్పష్టంగా ఉంచాను.
టి 2 విషయంలో, నేను నాలుగు నక్షత్రాలను ఉపయోగిస్తున్నాను. ఆ నాలుగు నక్షత్రాలను నేను స్పష్టంగా ఉంచాను.
అప్పుడు అది టెంప్లేట్ యొక్క పాక్షిక ఉదాహరణ అవుతుంది.
అప్పుడు అది టెంప్లేట్ యొక్క పాక్షిక ఉదాహరణ అవుతుంది.
ఇంతకుముందు విద్యార్థి తరగతి యొక్క ఈ టెంప్లేట్కు T1 మరియు T2 ని పేర్కొనడానికి రెండు రకాలు అవసరమయ్యాయి, దీని కోసం ఒక రకాన్ని మాత్రమే T1 అని పేర్కొనవలసి ఉంది, మరొకటి ఇప్పటికే నిర్దిష్టంగా ఉంది.
ఇంతకుముందు విద్యార్థి తరగతి యొక్క ఈ టెంప్లేట్కు T1 మరియు T2 ని పేర్కొనడానికి రెండు రకాలు అవసరమయ్యాయి, దీని కోసం ఒక రకాన్ని మాత్రమే T1 అని పేర్కొనవలసి ఉంది, మరొకటి ఇప్పటికే నిర్దిష్టంగా ఉంది.
టెంప్లేట్ నిర్వచనంలో, మీరు అన్ని రకాల పారామితులను పేర్కొన్నప్పుడు, టెంప్లేట్ పూర్తిగా ప్రత్యేకమైనదని మీరు చెప్తారు, లేకపోతే అది పాక్షికంగా ప్రత్యేకమైనదని మీరు చెబుతారు.
టెంప్లేట్ నిర్వచనంలో, మీరు అన్ని రకాల పారామితులను పేర్కొన్నప్పుడు, టెంప్లేట్ పూర్తిగా ప్రత్యేకమైనదని మీరు చెప్తారు, లేకపోతే అది పాక్షికంగా ప్రత్యేకమైనదని మీరు చెబుతారు.
మేము దీన్ని కొన్ని తరగతి ఉదంతాలతో చూస్తే, మనం సహజంగా స్ట్రింగ్లో రెండింటినీ నిర్దేశించే ఒక ఉదాహరణను సృష్టించాము.
మేము దీన్ని కొన్ని తరగతి ఉదంతాలతో చూస్తే, మనం సహజంగా స్ట్రింగ్లో రెండింటినీ నిర్దేశించే ఒక ఉదాహరణను సృష్టించాము.
కాబట్టి ఈ టెంప్లేట్ T1 int మరియు T2 స్ట్రింగ్ గురించి మాట్లాడటానికి ప్రయత్నిస్తోంది.
కాబట్టి ఈ టెంప్లేట్ T1 int మరియు T2 స్ట్రింగ్ గురించి మాట్లాడటానికి ప్రయత్నిస్తోంది.
మీరు అవుట్పుట్ నుండి సులభంగా సృష్టించవచ్చు, మీరు S1 చుక్కలు కలిగి ఉన్నారు; S1 ఈ టెంప్లేట్ సంస్కరణ కోసం సృష్టించబడిన ఒక వస్తువు మరియు మేము S1 డాట్ను ప్రింట్ చేస్తున్నాము, ఇది ఉపయోగించబడుతున్న సంస్కరణ.
మీరు అవుట్పుట్ నుండి సులభంగా సృష్టించవచ్చు, మీరు S1 చుక్కలు కలిగి ఉన్నారు; S1 ఈ టెంప్లేట్ సంస్కరణ కోసం సృష్టించబడిన ఒక వస్తువు మరియు మేము S1 డాట్ను ప్రింట్ చేస్తున్నాము, ఇది ఉపయోగించబడుతున్న సంస్కరణ.
మరొకటి, మేము ఏమి ఉపయోగించాము? రెండవదానిలో, మేము ఆసక్తికరమైనదాన్ని ఉపయోగించాము.
మరొకటి, మేము ఏమి ఉపయోగించాము? రెండవదానిలో, మేము ఆసక్తికరమైనదాన్ని ఉపయోగించాము.
సెకనులో మీరు ఏమి చెబుతున్నారో గమనించండి, దీనిలో మేము T1 int సమానమైన లేదా T2 స్ట్రింగ్ సమానమైనదాన్ని కూడా పేర్కొన్నాము.
సెకనులో మీరు ఏమి చెబుతున్నారో గమనించండి, దీనిలో మేము T1 int సమానమైన లేదా T2 స్ట్రింగ్ సమానమైనదాన్ని కూడా పేర్కొన్నాము.
ఒక ఫంక్షన్ (ఫంక్షన్) సందర్భంలో మనం విలువల ఫంక్షన్ల యొక్క డిఫాల్ట్ పారామితిని (పరామితి) కలిగి ఉండవచ్చని గుర్తుంచుకోండి, మనం 5 తో ప్రారంభించటానికి సమానంగా int x ను వ్రాయగలము, తద్వారా నేను ఆ పరామితిని పాస్ చేయకపోతే (పరామితి) ) నేను చేస్తే, అది 5 గా తీసుకోబడుతుంది.
ఒక ఫంక్షన్ (ఫంక్షన్) సందర్భంలో మనం విలువల ఫంక్షన్ల యొక్క డిఫాల్ట్ పారామితిని (పరామితి) కలిగి ఉండవచ్చని గుర్తుంచుకోండి, మనం 5 తో ప్రారంభించటానికి సమానంగా int x ను వ్రాయగలము, తద్వారా నేను ఆ పరామితిని పాస్ చేయకపోతే (పరామితి) ) నేను చేస్తే, అది 5 గా తీసుకోబడుతుంది.
అదేవిధంగా, మీరు డిఫాల్ట్ రకం పరామితి కావచ్చు.
అదేవిధంగా, మీరు డిఫాల్ట్ రకం పరామితి కావచ్చు.
నేను దానిని పేర్కొనకపోతే అది అలా తీసుకోబడుతుంది.
నేను దానిని పేర్కొనకపోతే అది అలా తీసుకోబడుతుంది.
నేను స్ట్రింగ్ స్టూడెంట్ ఇంట్ అని చెప్తుంటే, నేను స్టూడెంట్ ఇంట్ అని చెబితే నేను తీసుకుంటున్నాను.
నేను స్ట్రింగ్ స్టూడెంట్ ఇంట్ అని చెప్తుంటే, నేను స్టూడెంట్ ఇంట్ అని చెబితే నేను తీసుకుంటున్నాను.
మరియు నేను T2 ను డిఫాల్ట్గా స్ట్రింగ్గా తీసుకోలేదు.
మరియు నేను T2 ను డిఫాల్ట్గా స్ట్రింగ్గా తీసుకోలేదు.
కనుక ఇది అప్రమేయంగా స్ట్రింగ్ గా తీసుకోబడుతుంది.
కనుక ఇది అప్రమేయంగా స్ట్రింగ్ గా తీసుకోబడుతుంది.
నేను దీన్ని చేయగలను, ఇది మళ్ళీ అర్ధం, ఇక్కడ రెండూ డిఫాల్ట్ పరామితిని med హించాయి.
నేను దీన్ని చేయగలను, ఇది మళ్ళీ అర్ధం, ఇక్కడ రెండూ డిఫాల్ట్ పరామితిని med హించాయి.
డిఫాల్ట్ T1 int, డిఫాల్ట్ T2 int.
డిఫాల్ట్ T1 int, డిఫాల్ట్ T2 int.
నేను ఒక విద్యార్థిని స్ట్రింగ్ చేయగలను, అప్పుడు నేను స్టూడెంట్ స్ట్రింగ్ చేస్తాను. అంటే నేను T1 కు స్ట్రింగ్ చేశాను మరియు T2 డిఫాల్ట్, ఇది కూడా స్ట్రింగ్.
నేను ఒక విద్యార్థిని స్ట్రింగ్ చేయగలను, అప్పుడు నేను స్టూడెంట్ స్ట్రింగ్ చేస్తాను. అంటే నేను T1 కు స్ట్రింగ్ చేశాను మరియు T2 డిఫాల్ట్, ఇది కూడా స్ట్రింగ్.
మీరు ఉత్పత్తి చేసే అవుట్పుట్ను నేను చూపించానని మీరు చూడవచ్చు.
మీరు ఉత్పత్తి చేసే అవుట్పుట్ను నేను చూపించానని మీరు చూడవచ్చు.
చివరగా, మేము ఇక్కడ ఏమి చేసామో నేను చెబితే? రెండవ పరామితి నాలుగు నక్షత్రాలకు పాక్షికంగా నిర్దిష్టంగా ఉందని మేము చెప్పాము.
చివరగా, మేము ఇక్కడ ఏమి చేసామో నేను చెబితే? రెండవ పరామితి నాలుగు నక్షత్రాలకు పాక్షికంగా నిర్దిష్టంగా ఉందని మేము చెప్పాము.
నేను Int చార్ స్టార్ను ఉంచినట్లయితే అది టెంప్లేట్ అని అర్ధం కాదు ఎందుకంటే రెండవ పరామితి పాక్షికంగా పేర్కొనబడింది, కనుక ఇది టెంప్లేట్ అని అర్ధం అని మీరు చెబితే మరియు మేము S5 కోసం ప్రింట్ చేస్తున్నామని చూస్తే. మేము S5 డాట్ను ప్రింట్ చేసినప్పుడు, మీరు చూడవచ్చు ఆ సంస్కరణ రెండు ముద్రించబడుతోంది, ఇది మీరు ఒక నిర్దిష్ట టెంప్లేట్ సంస్కరణను పాక్షికంగా ఉపయోగిస్తున్నట్లు చూపిస్తుంది. ఉపయోగిస్తున్నారు.
నేను Int చార్ స్టార్ను ఉంచినట్లయితే అది టెంప్లేట్ అని అర్ధం కాదు ఎందుకంటే రెండవ పరామితి పాక్షికంగా పేర్కొనబడింది, కనుక ఇది టెంప్లేట్ అని అర్ధం అని మీరు చెబితే మరియు మేము S5 కోసం ప్రింట్ చేస్తున్నామని చూస్తే. మేము S5 డాట్ను ప్రింట్ చేసినప్పుడు, మీరు చూడవచ్చు ఆ సంస్కరణ రెండు ముద్రించబడుతోంది, ఇది మీరు ఒక నిర్దిష్ట టెంప్లేట్ సంస్కరణను పాక్షికంగా ఉపయోగిస్తున్నట్లు చూపిస్తుంది. ఉపయోగిస్తున్నారు.
ఇది మీరు బహుళ పారామితులతో ఈ రకమైన పనులను చేయగలరని మరియు వాటిని పాక్షికంగా నిపుణులుగా చేయగలరని మీకు చూపించడమే ఎందుకంటే మీరు ఒకదాని నుండి మరొకదానికి వెళతారు మరియు మీరు డిఫాల్ట్ పారామితులను కూడా కలిగి ఉంటారు.
ఇది మీరు బహుళ పారామితులతో ఈ రకమైన పనులను చేయగలరని మరియు వాటిని పాక్షికంగా నిపుణులుగా చేయగలరని మీకు చూపించడమే ఎందుకంటే మీరు ఒకదాని నుండి మరొకదానికి వెళతారు మరియు మీరు డిఫాల్ట్ పారామితులను కూడా కలిగి ఉంటారు.
చివరగా, నేను పూర్తి చేయడానికి ముందు, తరగతి వారసత్వంతో మాత్రమే ఒక టెంప్లేట్ను ఉపయోగించటానికి ఒక ఉదాహరణను మీకు చూపిస్తాను, కాబట్టి ఇది బౌండ్ సెట్ రకం యొక్క డేటా నిర్మాణాన్ని సృష్టించే ప్రయత్నం.
చివరగా, నేను పూర్తి చేయడానికి ముందు, తరగతి వారసత్వంతో మాత్రమే ఒక టెంప్లేట్ను ఉపయోగించటానికి ఒక ఉదాహరణను మీకు చూపిస్తాను, కాబట్టి ఇది బౌండ్ సెట్ రకం యొక్క డేటా నిర్మాణాన్ని సృష్టించే ప్రయత్నం.
ఒక జాబితా ఉంది, జాబితా గురించి ప్రత్యేకంగా ఆసక్తికరంగా ఏమీ లేదు, ఇది యాడ్ ఫంక్షన్ (ఫంక్షన్) కలిగి ఉన్న జాబితా, దీనిలో పొడవు ఫంక్షన్ (ఫంక్షన్), ఒక నిర్దిష్ట మూలకాన్ని (ఫంక్షన్) కనుగొనే ఫంక్షన్, వెక్టర్ను అంతర్గతంగా ఉపయోగిస్తుంది మూలకాలను పట్టుకోవటానికి.
ఒక జాబితా ఉంది, జాబితా గురించి ప్రత్యేకంగా ఆసక్తికరంగా ఏమీ లేదు, ఇది యాడ్ ఫంక్షన్ (ఫంక్షన్) కలిగి ఉన్న జాబితా, దీనిలో పొడవు ఫంక్షన్ (ఫంక్షన్), ఒక నిర్దిష్ట మూలకాన్ని (ఫంక్షన్) కనుగొనే ఫంక్షన్, వెక్టర్ను అంతర్గతంగా ఉపయోగిస్తుంది మూలకాలను పట్టుకోవటానికి.
కాబట్టి ఇది సహాయక డేటా నిర్మాణం లాంటిది.
కాబట్టి ఇది సహాయక డేటా నిర్మాణం లాంటిది.
అప్పుడు మీరు ఈ జాబితాను ఉపయోగించి సమితిని నిర్వచించండి.
అప్పుడు మీరు ఈ జాబితాను ఉపయోగించి సమితిని నిర్వచించండి.
ఒక సమితి తరగతి t యొక్క అంశాల జాబితాను కలిగి ఉంటుంది.
ఒక సమితి తరగతి t యొక్క అంశాల జాబితాను కలిగి ఉంటుంది.
ఇది వర్చువల్ ఫంక్షన్ (ఫంక్షన్) ను కలిగి ఉంటుంది, ఇది మూలకాలకు పొడవును జోడించగలదు.
ఇది వర్చువల్ ఫంక్షన్ (ఫంక్షన్) ను కలిగి ఉంటుంది, ఇది మూలకాలకు పొడవును జోడించగలదు.
కాబట్టి ప్రాథమికంగా మీరు ఒక మూలకాన్ని జోడిస్తే అది జాబితాలోకి వెళుతుంది, అది ఐటెమ్కు వెళ్లి పుట్ చేస్తుంది.
కాబట్టి ప్రాథమికంగా మీరు ఒక మూలకాన్ని జోడిస్తే అది జాబితాలోకి వెళుతుంది, అది ఐటెమ్కు వెళ్లి పుట్ చేస్తుంది.
మీరు ఇక్కడ ఒక పుట్ చేయాలనుకుంటే, నేను ఏదైనా కోల్పోయానా? లేదు.
మీరు ఇక్కడ ఒక పుట్ చేయాలనుకుంటే, నేను ఏదైనా కోల్పోయానా? లేదు.
ఇది దీన్ని జోడిస్తుంది, వాస్తవానికి జోడిస్తుంది. మీరు ఒక సెట్కు జోడించాలనుకుంటే, ఇప్పుడు అది ఒక సెట్, ఇది ఆసక్తికరంగా ఉంది, ఇది ఒక సెట్ కాబట్టి ప్రతి మూలకం ప్రత్యేకంగా ఉండాలి, సెట్ ప్రత్యేకతను కలిగి ఉంటుంది.
ఇది దీన్ని జోడిస్తుంది, వాస్తవానికి జోడిస్తుంది. మీరు ఒక సెట్కు జోడించాలనుకుంటే, ఇప్పుడు అది ఒక సెట్, ఇది ఆసక్తికరంగా ఉంది, ఇది ఒక సెట్ కాబట్టి ప్రతి మూలకం ప్రత్యేకంగా ఉండాలి, సెట్ ప్రత్యేకతను కలిగి ఉంటుంది.
నేను దీన్ని చేస్తున్న విధానం, నేను మొదట ఈ జాబితాలోని విలువను తీసుకుంటాను. మూలకం ఈ జాబితాకు చెందినదా అని నేను కనుగొన్నాను. అది ఉంటే అది ఇప్పటికే సెట్లో ఉంది కాబట్టి మీరు ఇప్పుడే తిరిగి రండి.
నేను దీన్ని చేస్తున్న విధానం, నేను మొదట ఈ జాబితాలోని విలువను తీసుకుంటాను. మూలకం ఈ జాబితాకు చెందినదా అని నేను కనుగొన్నాను. అది ఉంటే అది ఇప్పటికే సెట్లో ఉంది కాబట్టి మీరు ఇప్పుడే తిరిగి రండి.
నాకు ఆందోళన లేకపోతే నియంత్రణ ఇక్కడ వస్తుంది, కాబట్టి మీరు దాన్ని జాబితాకు చేర్చండి, కనుక ఇది అదే.
నాకు ఆందోళన లేకపోతే నియంత్రణ ఇక్కడ వస్తుంది, కాబట్టి మీరు దాన్ని జాబితాకు చేర్చండి, కనుక ఇది అదే.
పొడవు జాబితా యొక్క పొడవులో కేవలం ఒక రేపర్ ఉంది, కానీ ఒక రేపర్ను కనుగొనండి.
పొడవు జాబితా యొక్క పొడవులో కేవలం ఒక రేపర్ ఉంది, కానీ ఒక రేపర్ను కనుగొనండి.
ఏదైనా మూలకం రకానికి సెట్ చేయవలసిన రకాన్ని ఇది మీకు ఇస్తుంది.
ఏదైనా మూలకం రకానికి సెట్ చేయవలసిన రకాన్ని ఇది మీకు ఇస్తుంది.
ఇప్పుడు, నాకు డిఫాల్ట్ సెట్ కావాలి అనుకుందాం.
ఇప్పుడు, నాకు డిఫాల్ట్ సెట్ కావాలి అనుకుందాం.
ఇక్కడ పేరు పెట్టబడిన సెట్, ఇది రెండు సరిహద్దులతో కూడిన సమితి; ఎలిమెంట్స్ ఆ పరిమితిలో ఉండాలి, నిర్వచించిన సెట్లో కనీస మరియు గరిష్ట విలువల్లో ఉన్న సభ్యులు మాత్రమే ఉంటారు.
ఇక్కడ పేరు పెట్టబడిన సెట్, ఇది రెండు సరిహద్దులతో కూడిన సమితి; ఎలిమెంట్స్ ఆ పరిమితిలో ఉండాలి, నిర్వచించిన సెట్లో కనీస మరియు గరిష్ట విలువల్లో ఉన్న సభ్యులు మాత్రమే ఉంటారు.
కాబట్టి ఇది సెట్ నుండి ఒక స్పెషలైజేషన్.
కాబట్టి ఇది సెట్ నుండి ఒక స్పెషలైజేషన్.
మీరు నైపుణ్యాన్ని ఎలా వ్రాస్తారో మీరు చూడవచ్చు.
మీరు నైపుణ్యాన్ని ఎలా వ్రాస్తారో మీరు చూడవచ్చు.
బౌండ్ సెట్ కూడా టెంప్లేట్ ఎందుకంటే దీనికి మూలకం రకం అయిన టెంప్లేట్ పరామితి ఉంది, అయితే ఇది సెట్ t లో ప్రత్యేకత కలిగి ఉంది.
బౌండ్ సెట్ కూడా టెంప్లేట్ ఎందుకంటే దీనికి మూలకం రకం అయిన టెంప్లేట్ పరామితి ఉంది, అయితే ఇది సెట్ t లో ప్రత్యేకత కలిగి ఉంది.
అప్పుడు దానికి బౌండ్ సెట్లో కన్స్ట్రక్టర్ ఉంటుంది, దీనికి యాడ్ ఉంటుంది.
అప్పుడు దానికి బౌండ్ సెట్లో కన్స్ట్రక్టర్ ఉంటుంది, దీనికి యాడ్ ఉంటుంది.
మరియు, మీరు జోడించడానికి ప్రయత్నించినప్పుడు ఏమి జరుగుతుంది, అది ఇప్పటికే ఉంటే, అది తిరిగి వస్తుంది, ఇది సమితి యొక్క ప్రవర్తన.
మరియు, మీరు జోడించడానికి ప్రయత్నించినప్పుడు ఏమి జరుగుతుంది, అది ఇప్పటికే ఉంటే, అది తిరిగి వస్తుంది, ఇది సమితి యొక్క ప్రవర్తన.
కానీ, విలువ కనిష్ట మరియు గరిష్టంగా ఉంటే అది బేస్ క్లాస్ ఆబ్జెక్ట్ అయిన అసలు సెట్ క్లాస్ ఆబ్జెక్ట్కు వెళ్లి దాన్ని జోడిస్తుంది.
కానీ, విలువ కనిష్ట మరియు గరిష్టంగా ఉంటే అది బేస్ క్లాస్ ఆబ్జెక్ట్ అయిన అసలు సెట్ క్లాస్ ఆబ్జెక్ట్కు వెళ్లి దాన్ని జోడిస్తుంది.
అది కాకపోతే, అది ఏమీ చేయదు, ఇది ఇక్కడ మినహాయింపు ద్వారా మిమ్మల్ని విస్మరిస్తుంది మరియు కొన్ని ఇతర ప్రవర్తనలను కూడా చేస్తుంది.
అది కాకపోతే, అది ఏమీ చేయదు, ఇది ఇక్కడ మినహాయింపు ద్వారా మిమ్మల్ని విస్మరిస్తుంది మరియు కొన్ని ఇతర ప్రవర్తనలను కూడా చేస్తుంది.
కానీ నేను చూపించడానికి ప్రయత్నిస్తున్నది ఇక్కడ ఉంది, ఇది సెట్ యొక్క ప్రత్యేకత అయిన ఒక బౌండ్ సెట్ను కలిగి ఉంది, ఇది టెంప్లేట్ చేయబడింది, ఇది కూడా టెంప్లేట్ చేయబడింది మరియు దానిలో కొంత భాగం ఎందుకంటే దానిలో ఒకటి అయిన భాగాల జాబితా ఉంది ఒక వెక్టర్ భాగంగా.
కానీ నేను చూపించడానికి ప్రయత్నిస్తున్నది ఇక్కడ ఉంది, ఇది సెట్ యొక్క ప్రత్యేకత అయిన ఒక బౌండ్ సెట్ను కలిగి ఉంది, ఇది టెంప్లేట్ చేయబడింది, ఇది కూడా టెంప్లేట్ చేయబడింది మరియు దానిలో కొంత భాగం ఎందుకంటే దానిలో ఒకటి అయిన భాగాల జాబితా ఉంది ఒక వెక్టర్ భాగంగా.
ఇవన్నీ టెంప్లేట్ చేయబడ్డాయి, చివరికి నేను ఈ టెంప్లేటెడ్ క్లాస్లో ఈ టెంప్లేటెడ్ క్లాసులు మరియు వారసత్వాన్ని ఉపయోగించి ఏ రకమైన బౌండ్ సెట్ను పొందుతాను.
ఇవన్నీ టెంప్లేట్ చేయబడ్డాయి, చివరికి నేను ఈ టెంప్లేటెడ్ క్లాస్లో ఈ టెంప్లేటెడ్ క్లాసులు మరియు వారసత్వాన్ని ఉపయోగించి ఏ రకమైన బౌండ్ సెట్ను పొందుతాను.
కాబట్టి, వారసత్వ లక్షణంతో టెంప్లేట్ను ఈ విధంగా కలపవచ్చు.
కాబట్టి, వారసత్వ లక్షణంతో టెంప్లేట్ను ఈ విధంగా కలపవచ్చు.
ఇది తుది బౌండ్ సెట్ అప్లికేషన్, మీరు ఇప్పుడే పూర్తి చేసి, అప్లికేషన్ను తనిఖీ చేసి, దీన్ని అమలు చేయవచ్చు, తద్వారా మీరు ఈ సెట్కు కొన్ని సంఖ్యలను జోడించారు, ఆపై మీరు కనుగొనే నాలుగు ఆశలను కనుగొనడానికి ప్రయత్నిస్తారు.
ఇది తుది బౌండ్ సెట్ అప్లికేషన్, మీరు ఇప్పుడే పూర్తి చేసి, అప్లికేషన్ను తనిఖీ చేసి, దీన్ని అమలు చేయవచ్చు, తద్వారా మీరు ఈ సెట్కు కొన్ని సంఖ్యలను జోడించారు, ఆపై మీరు కనుగొనే నాలుగు ఆశలను కనుగొనడానికి ప్రయత్నిస్తారు.
మీ జాబితాలో 0 లేదా 25 వంటివి ఉన్నాయా అని మీరు తనిఖీ చేస్తారు, ఎందుకంటే మీ జాబితా 3 మరియు 21 మధ్య ఉంటుంది.
మీ జాబితాలో 0 లేదా 25 వంటివి ఉన్నాయా అని మీరు తనిఖీ చేస్తారు, ఎందుకంటే మీ జాబితా 3 మరియు 21 మధ్య ఉంటుంది.
అందువల్ల మీరు unexpected ఊహించని విలువ లేదని చెప్పారు.
అందువల్ల మీరు unexpected ఊహించని విలువ లేదని చెప్పారు.
ఇది మీ నిర్బంధ సెట్ డేటా రకం ఎలా పనిచేస్తుందో ఉదాహరణతో చూపిస్తుంది.
ఇది మీ నిర్బంధ సెట్ డేటా రకం ఎలా పనిచేస్తుందో ఉదాహరణతో చూపిస్తుంది.
సంక్షిప్తంగా, మేము C ++ లో టెంప్లేట్లను పరిచయం చేసాము మరియు క్లాస్ మూస డేటా నిర్మాణానికి ఒక సాధారణ పరిష్కారం అని చర్చించాము.
సంక్షిప్తంగా, మేము C ++ లో టెంప్లేట్లను పరిచయం చేసాము మరియు క్లాస్ మూస డేటా నిర్మాణానికి ఒక సాధారణ పరిష్కారం అని చర్చించాము.
ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్తో కలిపి, జెనరిక్ ప్రోగ్రామింగ్, ప్రోగ్రామింగ్ కోడ్ మరియు ప్రామాణిక టెంప్లేట్ లైబ్రరీ లేదా సి ++ వ్రాయగలిగే విషయంలో ఇది మాకు ఒక ప్రధాన ప్రయోజనాన్ని ఇస్తుంది. STL అని పిలవబడే వాటికి పునాది ఇస్తుంది.
ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్తో కలిపి, జెనరిక్ ప్రోగ్రామింగ్, ప్రోగ్రామింగ్ కోడ్ మరియు ప్రామాణిక టెంప్లేట్ లైబ్రరీ లేదా సి ++ వ్రాయగలిగే విషయంలో ఇది మాకు ఒక ప్రధాన ప్రయోజనాన్ని ఇస్తుంది. STL అని పిలవబడే వాటికి పునాది ఇస్తుంది.
మరియు ప్రత్యేకంగా వివరించిన తారాగణం ఆపరేటర్లు కాస్ట్ ఆపరేటర్ యొక్క ప్రాథమిక నిర్మాణాన్ని మరియు అనేక సందర్భాల్లో సి-స్టైల్ కాస్టింగ్ యొక్క చెడులను చర్చిస్తారు.
మరియు ప్రత్యేకంగా వివరించిన తారాగణం ఆపరేటర్లు కాస్ట్ ఆపరేటర్ యొక్క ప్రాథమిక నిర్మాణాన్ని మరియు అనేక సందర్భాల్లో సి-స్టైల్ కాస్టింగ్ యొక్క చెడులను చర్చిస్తారు.
మరియు ముఖ్యంగా, మేము కాస్ట్ ఆపరేటర్ను పరిశీలించాము.
మరియు ముఖ్యంగా, మేము కాస్ట్ ఆపరేటర్ను పరిశీలించాము.
తదుపరి మాడ్యూల్లో, మేము ఇతర కళాకారులను నియమించుకుంటాము మరియు ముందుకు వెళ్తాము.
తదుపరి మాడ్యూల్లో, మేము ఇతర కళాకారులను నియమించుకుంటాము మరియు ముందుకు వెళ్తాము.
మీకు పున in నిర్మాణం అవసరమైతే, డిజైన్లో కొంత లకునా ఉండాలి అని రెండవసారి చూడండి, తద్వారా మీరు డిజైన్ను మార్చాలి, మీరు ఇతర మూడు రకాల కాస్ట్ ఆపరేటర్లతో నిర్వహించగలుగుతారు.
మీకు పున in నిర్మాణం అవసరమైతే, డిజైన్లో కొంత లకునా ఉండాలి అని రెండవసారి చూడండి, తద్వారా మీరు డిజైన్ను మార్చాలి, మీరు ఇతర మూడు రకాల కాస్ట్ ఆపరేటర్లతో నిర్వహించగలుగుతారు.
కాబట్టి, సంగ్రహంగా చెప్పాలంటే, మేము సి ++ లో టైప్ కాస్టింగ్ చర్చను కొనసాగించాము.
కాబట్టి, సంగ్రహంగా చెప్పాలంటే, మేము సి ++ లో టైప్ కాస్టింగ్ చర్చను కొనసాగించాము.
మరియు ముఖ్యంగా, మేము ఈ మాడ్యూల్లో స్టాటిక్ కాస్ట్లు మరియు పునర్నిర్మాణాలను అధ్యయనం చేసాము.
మరియు ముఖ్యంగా, మేము ఈ మాడ్యూల్లో స్టాటిక్ కాస్ట్లు మరియు పునర్నిర్మాణాలను అధ్యయనం చేసాము.
మీ తారాగణం అవసరాలు ఏవైనా తారాగణం, స్టాటిక్ తారాగణం, పునర్నిర్మాణ తారాగణం మరియు డైనమిక్ తారాగణం యొక్క నాలుగు ఆపరేటర్లు అని మేము చూపించాము. పరిష్కరించడానికి సరిపోతాయి.
మీ తారాగణం అవసరాలు ఏవైనా తారాగణం, స్టాటిక్ తారాగణం, పునర్నిర్మాణ తారాగణం మరియు డైనమిక్ తారాగణం యొక్క నాలుగు ఆపరేటర్లు అని మేము చూపించాము. పరిష్కరించడానికి సరిపోతాయి.
మరియు దీనితో మీరు తక్కువతో ఎక్కువ చేయాలి; వాస్తవానికి మీ కోడ్లోని సి స్టైల్ కాస్టింగ్ యొక్క ఉపయోగాన్ని పూర్తిగా తొలగించమని నేను మీకు సలహా ఇస్తాను, ఈ కాస్టింగ్పై ఆధారపడండి.
మరియు దీనితో మీరు తక్కువతో ఎక్కువ చేయాలి; వాస్తవానికి మీ కోడ్లోని సి స్టైల్ కాస్టింగ్ యొక్క ఉపయోగాన్ని పూర్తిగా తొలగించమని నేను మీకు సలహా ఇస్తాను, ఈ కాస్టింగ్పై ఆధారపడండి.
ప్రధానంగా, మీరు పాలిమార్ఫిక్ సోపానక్రమంలో ఉన్నప్పుడు, స్టాటిక్ కాస్టింగ్ మరియు తారాగణం కాస్ట్ ఆపరేటర్ మరియు డైనమిక్ కాస్టింగ్పై ఆధారపడతాయి.
ప్రధానంగా, మీరు పాలిమార్ఫిక్ సోపానక్రమంలో ఉన్నప్పుడు, స్టాటిక్ కాస్టింగ్ మరియు తారాగణం కాస్ట్ ఆపరేటర్ మరియు డైనమిక్ కాస్టింగ్పై ఆధారపడతాయి.
కాబట్టి దయచేసి దానిపై పని చేయండి, దయచేసి ఈ నిర్మాణాన్ని చాలా జాగ్రత్తగా అర్థం చేసుకోవడానికి ప్రయత్నించండి మరియు ఈ మూల వ్యక్తీకరణ ద్వారా మరియు మీరు ఎక్కడ స్టాటిక్ బైండింగ్ మరియు మీకు డైనమిక్ బైండింగ్ ఉన్న సంకలనం చేసిన వ్యక్తీకరణకు వ్యతిరేకంగా పని చేయండి, తద్వారా మీరు కూడా అర్థం చేసుకుంటారు.
కాబట్టి దయచేసి దానిపై పని చేయండి, దయచేసి ఈ నిర్మాణాన్ని చాలా జాగ్రత్తగా అర్థం చేసుకోవడానికి ప్రయత్నించండి మరియు ఈ మూల వ్యక్తీకరణ ద్వారా మరియు మీరు ఎక్కడ స్టాటిక్ బైండింగ్ మరియు మీకు డైనమిక్ బైండింగ్ ఉన్న సంకలనం చేసిన వ్యక్తీకరణకు వ్యతిరేకంగా పని చేయండి, తద్వారా మీరు కూడా అర్థం చేసుకుంటారు.
సి లో ఫంక్షన్ పాయింటర్లను ఉపయోగించే ఉద్యోగుల జీతం అనువర్తనాల కోసం దాని ప్రయోజనాలు మరియు వినూత్న పరిష్కారాలను సంగ్రహించడానికి, వర్చువల్ ఫంక్షన్ (ఫంక్షన్) పాయింటర్ పట్టికలను ఉపయోగించి వర్చువల్ ఫంక్షన్లు ఎలా అమలు చేయబడుతున్నాయో చెప్పడానికి మేము పునాది వేసాము.
సి లో ఫంక్షన్ పాయింటర్లను ఉపయోగించే ఉద్యోగుల జీతం అనువర్తనాల కోసం దాని ప్రయోజనాలు మరియు వినూత్న పరిష్కారాలను సంగ్రహించడానికి, వర్చువల్ ఫంక్షన్ (ఫంక్షన్) పాయింటర్ పట్టికలను ఉపయోగించి వర్చువల్ ఫంక్షన్లు ఎలా అమలు చేయబడుతున్నాయో చెప్పడానికి మేము పునాది వేసాము.
దయచేసి దీన్ని మరింత స్పష్టంగా అర్థం చేసుకోవడానికి ప్రయత్నించండి, తద్వారా డైనమిక్ ట్రాన్స్మిషన్ గురించి ఏదైనా గందరగోళం మీ మనస్సులో స్పష్టంగా కనిపిస్తుంది.
దయచేసి దీన్ని మరింత స్పష్టంగా అర్థం చేసుకోవడానికి ప్రయత్నించండి, తద్వారా డైనమిక్ ట్రాన్స్మిషన్ గురించి ఏదైనా గందరగోళం మీ మనస్సులో స్పష్టంగా కనిపిస్తుంది.
ఫ్రెండ్ ఫంక్షన్ ఫంక్షన్ మరియు ఫ్రెండ్ క్లాస్ ప్రోగ్రామింగ్ ఇన్ C ++ లో మాడ్యూల్ 17 కు స్వాగతం .
ఈ మాడ్యూల్లో, ఫ్రెండ్ ఫంక్షన్ గురించి మరియు ఫ్రెండ్ క్లాస్ గురించి మాట్లాడుతాము, వారు అర్థం ఏమిటో అర్థం చేసుకోవడానికి ప్రయత్నిస్తున్నారు మరియు వారు C ++ డిజైన్ ప్రాసెస్లో ఉన్నారు. అవి ఎందుకు ఉపయోగపడతాయి?
ఇవి మాడ్యూల్ యొక్క రూపురేఖలుగా ఉంటాయి.మేము మ్యాట్రిక్స్ వెక్టర్ గుణకారం మరియు అనుసంధాన జాబితా యొక్క ఉదాహరణలను తీసుకుంటాము మరియు చివరకు కొన్ని గమనికలతో ముగుస్తుంది.
మీకు తెలిసినట్లుగా అవుట్లైన్ సాధారణంగా మీ స్లైడ్ యొక్క ఎడమ వైపున అందుబాటులో ఉంటుంది.
కాబట్టి, మొదట ఫ్రెండ్ ఫంక్షన్ యొక్క ప్రాథమిక భావనను పరిచయం చేద్దాం.
ఎడమ వైపున మీరు ఒక సాధారణ ఫంక్షన్ యొక్క వీక్షణను చూస్తారు.
కాబట్టి పరిస్థితి ఇలా ఉంది, నాకు కొన్ని ప్రైవేట్ డేటా వలె క్లాస్ మైక్లాస్ ఉంది, దీనికి కన్స్ట్రక్టర్ ఉంది, మరియు అది; ఈ పంక్తిని విస్మరించినట్లయితే క్షమించండి.
క్లాస్తో ఏదైనా చేయటానికి ప్రయత్నిస్తున్న ఈ తరగతి వెలుపల ఈ ఫంక్షన్ నాకు ఉంది.
నువ్వేమి చేస్తున్నావు ఇది పారామితి పరామితి ద్వారా కాల్ పరామితిని తీసుకుంటుంది, ఆపై అది ఆ ప్రయోజనం యొక్క డేటా మూలకం భాగాన్ని ముద్రించడానికి ప్రయత్నిస్తుంది.
ఇప్పుడు, మనకు తెలిసినది, ఇది ప్రైవేట్, కాబట్టి, నాకు ఫంక్షన్ ఉంటే, ఈ వస్తువును యాక్సెస్ చేసే హక్కు నాకు లేదు.
కాబట్టి, అది కాదని పరిగణించండి.
ఇది లోపానికి దారి తీస్తుంది మరియు మైక్లాస్లో ప్రకటించిన ఒక ప్రైవేట్ సభ్యుడు యాక్సెస్ చేయలేని లోపం మీకు లభిస్తుంది, ఎందుకంటే మీకు ఇప్పుడు బాగా తెలుసు కారణం ఇది గ్లోబల్ ఫంక్షన్ మరియు ఇది ప్రైవేట్ ఇది డేటా, తద్వారా మీరు నేరుగా డేటాను యాక్సెస్ చేయలేరు.
ఇప్పుడు, మేము కుడి వైపు చూస్తాము.
కుడి వైపున, మనకు సరిగ్గా అదే కోడ్ ఉంది, మేము దానిని తరగతిలో ప్రవేశపెట్టాము, అదే విధంగా మేము సభ్యుల ఫంక్షన్ను నిర్వచించాము, కానీ ఈ చేరిక ఒక కీవర్డ్ అనే తేడాతో. (కీవర్డ్) దీని ద్వారా ప్రిఫిక్స్ చేయబడింది స్నేహితుడు.
ఇప్పుడు ఇది డిస్ప్లేని క్లాస్ యొక్క సభ్యుల ఫంక్షన్ చేయదు, డిస్ప్లే క్లాస్ సభ్యుడు ఫంక్షన్ కాదు, ఇది గ్లోబల్ ఫంక్షన్.
మైక్లాస్ యొక్క స్నేహితుడు అయిన ఒక నిర్దిష్ట రకం గ్లోబల్ ఫంక్షన్, కానీ నేను ఈ గ్లోబల్ ఫంక్షన్ డిస్ప్లేను చెప్పినప్పుడు ఇది మైక్లాస్ యొక్క వస్తువును తీసుకుంటుంది మరియు మైక్లాస్ ఒక స్నేహితుడు అని నేను చెప్పినప్పుడు శూన్యమవుతుంది, లోపం లేదు, ఈ లోపం అదృశ్యమవుతుంది, ఇది ఇప్పుడు అనుమతించబడింది.
కాబట్టి భావన మా ఇంట్లో కూడా మీకు తెలిసినట్లుగా ఉంటుంది. ఎవరైనా మా ఇంట్లోకి అడుగుపెడితే, మేము సాధారణంగా వారిని డ్రాయింగ్ రూమ్కు తీసుకెళ్లవచ్చు, ఇది బహిరంగ స్థలం లాంటిది మరియు మేము వారికి ఇంటీరియర్ కలిగి ఉన్నగదులు మాత్రమే ఇస్తాము మాది ఇవ్వము. ప్రైవేట్ స్థలం.
నాకు ఒక స్నేహితుడు ఉంటే, నేను ఆమెను డ్రాయింగ్ గదిలో వేచి ఉండను, బదులుగా నేను ఆమెను నా బెడ్ రూమ్ లేదా కిచెన్ మొదలైన వాటిలో నా మంచానికి తీసుకువెళతాను.
కనుక ఇది ఇలాంటి కాన్సెప్ట్ లాంటిది.
కాబట్టి ఇక్కడ, ఈ ఫంక్షన్ (మైక్లాస్) ఈ తరగతికి వెలుపల ఉన్న సభ్యుల ఫంక్షన్ లేని డిస్ప్లే ఫంక్షన్ ఇప్పటికీ మిత్రుడని, అందువల్ల, ఈ తరగతి యొక్క ప్రైవేట్ డేటా ఈ సభ్యునికి బహిర్గతమవుతుందని వారు చెప్పారు.
ఇది ఫ్రెండ్ ఫంక్షన్ యొక్క ప్రాథమిక ఆలోచన మరియు కనుక ఇది సంకలనం లోపాన్ని ఇచ్చే విధంగా ఉత్పత్తి చేస్తుంది కాని ఇది సరైనది, అవుట్పుట్ ఉత్పత్తి అవుతుంది.
అదే సమయంలో, "ఫ్రెండ్ (ఫ్రెండ్) ఫంక్షన్ యొక్క క్లాస్ ఫంక్షన్ యొక్క ప్రైవేట్ మరియు రక్షిత సభ్యులకు యాక్సెస్" అనే ఫ్రెండ్ ఫంక్షన్ అంటే ఏమిటో ఒక అధికారిక నిర్వచనాన్ని మనం చూడవచ్చు. ఇది సంభవిస్తుంది.
"ఇది రక్షిత సభ్యులు ఏమిటో ఇంకా చర్చించబడని ఎన్క్యాప్సులేషన్ను విచ్ఛిన్నం చేయవచ్చు, అయితే, ఇది స్పష్టంగా తెలుస్తుందని మేము చర్చించినప్పుడు కొంతకాలం పట్టుకోండి, కాని వారు ఆ ప్రైవేట్ సభ్యుడిలాగే ఉన్నారు.
కనుక ఇది తరగతి పరిధిలో ఒక నమూనాను కలిగి ఉండాలి మరియు స్నేహితుడితో ముందే ఉండాలి, డిస్ప్లే ఫంక్షన్ యొక్క ఉదాహరణలో మీరు క్లాస్ లోపల ఆ ఫంక్షన్ (ఫంక్షన్) ను ఉపయోగించవచ్చు. స్నేహితుడితో స్నేహితుడి సంతకాన్ని ఎలా వ్రాయాలి, ఈ ప్రత్యేకమైన ఫంక్షన్ ఈ తరగతికి స్నేహితుడు అని చెప్పడం.
ఇప్పుడు ఈ ఫంక్షన్ (ఫంక్షన్) తరగతికి సంబంధించినది కాదు, ఇది సభ్యుల ఫంక్షన్ (ఫంక్షన్) కాదు, కాబట్టి సాధారణ నాన్ ఫ్రెండ్ (ఫ్రెండ్) సభ్యుల ఫంక్షన్ల కోసం మేము చేసే విధంగా క్లాస్ పేరుతో పేరు అర్హత లేదు.
ఇది తరగతిలో భాగం కానందున ఇది ఒక వస్తువును ప్రారంభించడం ద్వారా ప్రారంభించబడదు.
ఒక నిర్దిష్ట సభ్యుల ఫంక్షన్ లేదా ఒక నిర్దిష్ట ఫంక్షన్ ఒకటి కంటే ఎక్కువ తరగతుల స్నేహితుడు కావచ్చు.
ఇప్పుడు, అన్ని ఫ్రెండ్ ఫంక్షన్లు ఏమిటో మీరు చూస్తే; ఏదైనా గ్లోబల్ ఫంక్షన్ ఒక తరగతికి స్నేహితుడు (స్నేహితుడు) కావచ్చు, వేరే తరగతి సభ్యుడు కూడా తరగతికి స్నేహితుడు (స్నేహితుడు) కావచ్చు లేదా ఫంక్షన్ టెంప్లేట్ ఫ్రెండ్ ఫ్రెండ్ ఫంక్షన్ కావచ్చు.
ఇప్పుడు, మీకు ఫంక్షన్ టెంప్లేట్ మళ్ళీ తెలియదు, కానీ మీరు వచ్చినప్పుడు అది ఎలా పనిచేస్తుందో మీకు అర్థం అవుతుంది.
దీనితో, ఇప్పుడు మరింత దృఢమైన సమస్యను పరిచయం చేద్దాం.
ఇక్కడ సమస్య ఏమిటంటే, నాకు రెండు తరగతులు ఉన్నాయి, నాకు ఒక ఆకారం n యొక్క సరళ వెక్టర్ కలిగి ఉన్న వెక్టర్ క్లాస్ మరియు ఒక తరగతిని కలిగి ఉన్న మ్యాట్రిక్స్ క్లాస్ ఉన్నాయి. (క్లాస్) ఒక మాతృకను కలిగి ఉంటుంది, తప్పనిసరిగా క్లాస్ మ్యాట్రిక్స్ కాదు. ఇది ఉంటుంది m కొలతలు ద్వారా n యొక్క మాతృక.
కాబట్టి, వెక్టర్ విషయాలను సరళంగా ఉంచడానికి ఇది కేవలం ఒక కన్స్ట్రక్టర్, తద్వారా నేను వెక్టర్ యొక్క విలువలను నమోదు చేయనవసరం లేదు, ఇక్కడ నేను కన్స్ట్రక్టర్ వంటిదాన్ని సెట్ చేసాను. కొన్ని విలువలను సెట్ చేస్తుంది.
అదేవిధంగా, మ్యాట్రిక్స్ యొక్క కన్స్ట్రక్టర్ విలువలను నిర్మించినప్పుడు స్వయంచాలకంగా ప్రారంభించబడుతుందని అనుకుందాం.
మా ఆసక్తికి లేని మాతృక లేదా వెక్టర్లో ఏ విలువలు ఉన్నాయో నా ఉద్దేశ్యం.
మన ఆసక్తి ఏమిటి? ఇప్పుడు వెక్టర్ ఆబ్జెక్ట్ మరియు మ్యాట్రిక్స్ ఆబ్జెక్ట్ ఇవ్వబడింది, నేను వారి ఉత్పత్తిని లెక్కించగలిగే ఫంక్షన్ను నిర్వచించాలనుకుంటున్నాను.
నేను ఈ రకమైన ఫంక్షన్ కోరుకుంటున్నాను.
ఇక్కడ ఒక మ్యాట్రిక్స్ ఆబ్జెక్ట్ తీసుకునే ఫంక్షన్, నేను దానిని పాయింటర్ ద్వారా తీసుకున్నాను.ఒక వెక్టర్ ఒక వస్తువును తీసుకుంటుంది, అవి మాతృక అయి ఉండాలి. వెక్టర్ గుణకారం యొక్క నియమాలను అనుసరిస్తుంది మరియు ఈ సందర్భంలో నాకు ఖచ్చితంగా వెక్టర్ అవుతుంది .
మీరు ఇక్కడ చూస్తున్నది, ఇది ప్రత్యేకంగా పనిచేస్తుంది మరియు ఇది అమలు అవుతుంది. నేను అమలు చేయడం లేదు. మీరు తరువాత చూడవచ్చు. ఇది ఒక నిర్దిష్ట మాతృక (వెక్టర్) గుణకారం కోడ్.
హైలైట్ చేయడానికి నాకు ఆసక్తి ఏమిటంటే, ఇక్కడ ఈ ఫంక్షన్ నేను గ్లోబల్ ఫంక్షన్గా వ్రాశాను.
ఈ ఫంక్షన్ వెక్టర్ లోపలికి చేరుకోవాలి.ఇది ఖచ్చితంగా ఈ శ్రేణి మరియు కోణాన్ని యాక్సెస్ చేయాలి.
అదేవిధంగా, ఇది మాతృక మరియు దాని కొలతలు కూడా యాక్సెస్ చేయవలసి ఉంటుంది, తద్వారా వారు తమ ఉత్పత్తిని వాస్తవంగా లెక్కించగలరు.
ఇప్పుడు, మోసం (ప్రోడ్) ఈ తరగతుల్లో దేనిలోనూ సభ్యుడు కాదు.
వాస్తవానికి, దీన్ని సభ్యునిగా చేయడం సమస్యను పరిష్కరించదు, ఎందుకంటే నేను ఉత్పత్తులను వెక్టర్లో సభ్యునిగా చేస్తే వాటిని సులభంగా యాక్సెస్ చేయవచ్చు, కానీ అది ఇప్పటికీ వాటిని యాక్సెస్ చేయదు.
నేను ఉత్పత్తిని మాతృకలో సభ్యునిగా చేస్తే, నేను దాన్ని యాక్సెస్ చేయగలను కాని నేను దానిని యాక్సెస్ చేయలేను.
కాబట్టి ఇక్కడ నేను దీనిని ఒక గ్లోబల్ ఫంక్షన్గా చేస్తానని ఒక పరిష్కారాన్ని అందిస్తున్నాను, ఇది ఈ తరగతులకు ప్రతి వెలుపల ఉంది, కాని నేను చేసేది ఏమిటంటే నేను ఈ రెండు తరగతుల్లోనూ ఒక స్నేహితుడు (స్నేహితుడు) ఫంక్షన్ చేస్తాను.
నేను ఒక ఉత్పత్తిని క్లాస్ వెక్టర్ యొక్క స్నేహితునిగా చేస్తే, ఉత్పత్తి వెక్టార్ యొక్క స్నేహితుడు కనుక ఈ ప్రైవేట్ డేటా సభ్యులను యాక్సెస్ చేయగలుగుతారు.
అదేవిధంగా, నేను మాతృక తరగతి యొక్క ప్రైవేట్ సభ్యులను యాక్సెస్ చేయాలి, కాబట్టి నేను కూడా స్నేహితుడిని మాతృక తరగతిలో ఉత్పత్తి చేస్తాను.
నేను దీన్ని పూర్తి చేసిన తర్వాత కోడ్ కంపైల్ చేయబడుతుంది ఎందుకంటే నేను వెక్టర్ యొక్క ప్రైవేట్ డేటా సభ్యులను లేదా మాతృక యొక్క ప్రైవేట్ డేటా సభ్యులను సూచించేటప్పుడు, రెండూ ప్రాప్యత చేయబడతాయి ఎందుకంటే ఈ రెండు తరగతుల ఫ్రెండ్ (స్నేహితుడు) మరియు అది కోడ్ను కంపైల్ చేస్తుంది మరియు నేను దానితో ఒక ప్రధాన అప్లికేషన్ను వ్రాస్తే.
కొలతలు మూడు మాతృకలను నేను ఎక్కడ సృష్టించాను. మూడు వెక్టర్ ఆఫ్ డైమెన్షన్ మూడుగా, వాటి విలువలు అప్రమేయంగా నింపబడుతున్నాయని నేను చెప్పాను మరియు అది మాతృకతో నిండి ఉంది, కాబట్టి ఫంక్షన్ అది వెక్టర్ అని చూపిస్తుంది మరియు తరువాత నేను గుణించినట్లయితే పివి అనేది మాతృక యొక్క గుణకారం మరియు వెక్టర్ మరియు పివి ఈ అవుట్పుట్ మారుతుంది
ఇక్కడ నేను ఈ ఫంక్షన్ను వ్రాయగలను, నాకు ఫ్రెండ్ (ఫ్రెండ్) ఫంక్షన్ వచ్చేవరకు ఈ ఫంక్షన్ రాయలేను.
ఎందుకంటే నేను ఉత్పత్తులను వెక్టర్లో సభ్యునిగా చేయగలను లేదా నేను దానిని మాతృకలో సభ్యునిగా చేయగలను, కాని నేను ఖచ్చితంగా రెండింటిలో సభ్యునిగా చేయలేను, కానీ రెండు తరగతుల సభ్యులను చేరుకోవడానికి గుణించాలి. లెక్కించగలగాలి .
కాబట్టి, కార్యాచరణను పూర్తి చేయడానికి నాకు రెండు లేదా అంతకంటే ఎక్కువ స్వతంత్ర తరగతుల కోసం అంతర్గత లేదా ప్రైవేట్ డేటా సభ్యులు మరియు పద్ధతులు అవసరమయ్యే పరిస్థితిని ఎదుర్కొన్నప్పుడు, ఆ స్థలానికి రావడానికి నాకు ఒక స్నేహితుడు (స్నేహితుడు) అవసరం.) ఫంక్షన్ ఫంక్షన్ అవసరం.
ఇది ఇక్కడ మరొక ఉదాహరణ; ఉదాహరణ నేను జాబితా చేయడానికి ప్రయత్నిస్తున్నాను.
నేను జాబితాను ఎలా తయారు చేయగలను? నాకు నోడ్ క్లాస్ ఉంది.
జాబితాలోని తదుపరి నోడ్ (నోడ్) కు లింక్ చేయడానికి డేటా భాగాన్ని మరియు లింక్ భాగాన్ని కలిగి ఉన్న అసలు నోడ్ సమాచారాన్ని నోడ్ క్లాస్ నిర్వచిస్తుంది.
మరియు నాకు జాబితా తరగతి ఉంది, ఇది వాస్తవానికి ఈ మొత్తం జాబితాను కలిగి ఉంది, కాబట్టి అంతే.
జాబితా తరగతిలో, రెండు పాయింట్లు, హెడర్ పాయింటర్ మరియు పాయింటర్, సాధారణంగా చూడవచ్చు, కాబట్టి ఇది ఇలా కనిపిస్తుంది, నాకు ఇలాంటి జాబితా ఉంటుంది, ఇది 2 అని చెప్పండి, ఇది 3, మరియు జాబితాను చెప్పండి ఇక్కడ ముగిసింది.
కాబట్టి, నా తల జాబితా యొక్క ప్రారంభాన్ని సూచిస్తుంది మరియు తోక జాబితా ముగింపును సూచిస్తుంది.
కాబట్టి నేను నిజంగా అలాంటి నిర్మాణాన్ని సృష్టించాలనుకుంటున్నాను, ఆపై నేను జాబితాను ఉపయోగించాలనుకుంటున్నాను.
నేను ప్రదర్శించాల్సిన జాబితాలో ఈ రకమైన కార్యాచరణను అమలు చేయాలనుకుంటే, అది జాబితాకు వెళ్లి మీ వద్ద ఉన్న అన్ని అంశాలను అవుట్పుట్ చేస్తుంది లేదా మీరు జాబితాకు జత చేసింది.
నేను ఆ జాబితా :: ప్రదర్శనను చెప్పాలనుకుంటే, అది జాబితా యొక్క సభ్యుల పని.
నేను దీన్ని అమలు చేయాలనుకుంటే నాకు నోడ్ యొక్క అంతర్గత సమాచారం అవసరం, ఎందుకంటే నేను నోడ్ యొక్క సమాచారాన్ని యాక్సెస్ చేసే వరకు ఆ విలువను ముద్రించలేను.
నేను నోడ్ యొక్క తదుపరి ఫీల్డ్ను యాక్సెస్ చేసే వరకు జాబితాలోని తదుపరి నోడ్ను యాక్సెస్ చేయలేను, కాబట్టి నేను వాటిని యాక్సెస్ చేయాలి.
కానీ ప్రాథమికంగా డిస్ప్లే క్లాస్ జాబితా యొక్క సభ్యుల ఫంక్షన్, కాబట్టి ఇది నోడ్ (నోడ్) క్లాస్ యొక్క ప్రైవేట్ సభ్యులను మరియు నేను స్నేహితుడిని (స్నేహితుడిని) ఉపయోగించే చోట యాక్సెస్ చేయడానికి నన్ను అనుమతించదు.
నేను ఏమి చేస్తాను? క్లాస్ I డిస్ప్లే ఫంక్షన్ యొక్క సంతకాన్ని నోడ్కు వ్రాస్తుంది.
ప్రదర్శన సభ్యుల ఫంక్షన్ అని గమనించండి, కాబట్టి ప్రదర్శన ఫంక్షన్ పేరు వాస్తవానికి జాబితా :: నోడ్ (నోడ్), కాబట్టి నేను ఇక్కడ వ్రాస్తున్నాను ఎందుకంటే నన్ను క్షమించండి, సభ్యుల ఫంక్షన్ (ఫంక్షన్) పేరు ప్రదర్శన మరియు పూర్తి పేరు జాబితా: ప్రదర్శన.
అందువల్ల, నేను మొత్తం సంతకాన్ని ఇక్కడ వ్రాస్తున్నాను మరియు నేను కీవర్డ్ ఫ్రెండ్తో ఉపసర్గ చేస్తున్నాను.
జాబితా యొక్క సభ్యుల విధులు అయిన ప్రదర్శన మరియు అనుబంధాలు రెండూ నోడ్ క్లాస్ యొక్క స్నేహితులు (స్నేహితుడు) గా సృష్టించబడతాయి, అంటే నేను ప్రదర్శనను అమలు చేయడానికి ప్రయత్నించినప్పుడు లేదా నేను జోడించినప్పుడు నేను అమలు చేయడానికి ప్రయత్నిస్తే, వారు యాక్సెస్ చేయగలరు నోడ్ (లు) తరగతి యొక్క ప్రైవేట్ డేటా సభ్యులు మరియు నేను చాలా మంచి జాబితా అమలును పొందగలుగుతాను, మరియు ఒక అప్లికేషన్ ఉంటే శూన్య జాబితాను సృష్టించే ఎవరైనా కొన్ని నోడ్ వస్తువును సృష్టిస్తారు మరియు అది నోడ్ను జతచేస్తుంది ( నోడ్) ఒకదాని తరువాత ఒకటి మరియు అది చివరికి జాబితాను ముద్రిస్తుంది.
మీరు ఇలా చేస్తే మీకు 1 2 3 ముద్రణ లభిస్తుంది ఎందుకంటే మేము 3 మోడ్లను సృష్టించాము, అవి 1 2 మరియు 3 విలువలతో ఉంటాయి, ఇది చాలా ముఖ్యమైనది కాదు.
స్నేహితుడు (స్నేహితుడు) ఫంక్షన్ను ఉపయోగించడం ద్వారా, మీరు కొంతవరకు సంబంధం ఉన్న తరగతులకు బాగా లింక్ చేయగలరని నేను సూచించాలనుకుంటున్నాను, కాని ఆదిమ నోడ్ ఏమిటో పూర్తిగా స్వతంత్రంగా ఉంటుంది.) మీరు విలువను కలిగి ఉండాలనుకునే నిర్మాణాన్ని ఇస్తుంది మరియు వాస్తవానికి జాబితాను నిర్వహించే మరొకటి వాటిలోని కార్యాచరణ వంటి నిర్మాణం, నిర్వహణ మరియు తొలగింపును ప్రదర్శిస్తుంది.
మరియు మేము వారి ఎన్క్యాప్సులేషన్ పరిమితిని తగ్గించుకుంటున్నాము. నోడ్ క్లాస్ యొక్క స్నేహితులుగా జాబితా తరగతి యొక్క కొన్ని సభ్యుల ఫంక్షన్లను సృష్టించడం ద్వారా మేము నోడ్ యొక్క ఎన్క్యాప్సులేషన్లో మొత్తం ఫంక్షన్ చేస్తున్నాము.
గ్లోబల్ ఫంక్షన్ రెండు తరగతుల స్నేహితుడిగా ఎలా ఉంటుందో చూపించిన మాతృక గుణకారం యొక్క మొదటి ఉదాహరణతో పోలిస్తే, ఇక్కడ నేను తప్పనిసరిగా ఒక సభ్యుల ఫంక్షన్, వాస్తవానికి, ఒక తరగతి యొక్క రెండు సభ్యుల విధులు ఇతర తరగతికి స్నేహితులుగా ఉంటానని చూపించాను.
మ్యాట్రిక్స్ వెక్టర్ గుణకారం కూడా నేను ఉత్పత్తులను వెక్టర్ యొక్క సభ్యునిగా మార్చగలిగే శైలిలో పరిష్కరించవచ్చు మరియు ఆ వెక్టర్ :: మాతృక యొక్క ఒక స్నేహితుడు లేదా దీనికి విరుద్ధంగా, ఇది ఉత్పత్తులలో మాతృక యొక్క సభ్యుల పనితీరును నిర్మిస్తుంది మరియు తరువాత మాతృకను నిర్మిస్తుంది :: వెక్టర్ యొక్క స్నేహితుడు.
సాధారణంగా మంచి ప్రయోజనాల కోసం ఫ్రెండ్ ఫంక్షన్ ఎలా ఉపయోగించబడుతుందో అలా ఇది ఉంటుంది.
దీనిలో కొంత వివరాలు ఉన్నాయి, మీరు ఒక జాబితా మరియు నోడ్ ఉదాహరణ గురించి ఆలోచిస్తే, మాకు జాబితా యొక్క సభ్యుల విధులు మరియు స్నేహితులుగా ఉండటానికి నోడ్ యొక్క నోడ్ రెండూ అవసరం అనే వాస్తవం ఈ విస్తరణకు దారితీస్తుంది. పనితీరు అనుబంధం కూడా అవసరం.
ఇప్పుడు, జాబితా తరగతులు తీసివేయబడితే, అది నోడ్కు స్నేహితుడిగా ఉండాలి మరియు మొదలైనవి.
మీరు చేయగలిగే సత్వరమార్గం ఉంది మరియు అది ఫ్రెండ్ క్లాస్ను సూచిస్తుంది.
నేను రెండు తరగతులు కలిగి ఉంటే, మనం ఒక తరగతిని మరొక స్నేహితుడిగా సృష్టించవచ్చు, ఆ తరగతి పేరు మరియు స్నేహితుడిని ఉపసర్గ చేయండి.
ఒక తరగతి మరొక స్నేహితుడి స్నేహితులైతే, అది తరగతి యొక్క ప్రైవేట్ మరియు రక్షిత సభ్యులకు ప్రాప్యతను కలిగి ఉంటుంది.
ఒక నిర్దిష్ట ఫంక్షన్ను ఉపయోగించే ఒక స్నేహితుడు (స్నేహితుడు) ఫంక్షన్ కోసం, ఒక తరగతి తరగతికి ఆ తరగతి యొక్క అన్ని పద్ధతులను ప్రాప్యత చేయడానికి, ప్రైవేట్ డేటా సభ్యులు మరియు స్నేహితులు ఫ్రెండ్ క్లాస్ సభ్యుడు ఫంక్షన్లను కలిగి ఉంటారు, నేను ఏ ఫంక్షన్ సభ్యుడిని సూచిస్తున్నప్పటికీ.
సహజంగానే, ఇది ఒక తరగతి కాబట్టి, అది స్నేహితులుగా ఉండే తరగతి పేరును పూర్తిగా అర్హత పొందదు, ఎందుకంటే ఇది ఒక సమూహ తరగతి.) లేదు, ఇది కేవలం రెండు స్వతంత్ర తరగతులు, నాకు ఇక్కడ ఒక తరగతి ఉంది, నాకు ఒక తరగతి ఉంది ఇక్కడ, నాకు ఇక్కడ 1 ఉంది, నాకు ఇక్కడ 2 ఉన్నాయి.
నేను సి 2 సి 1 యొక్క స్నేహితుడు అని చెప్తున్నాను, కాబట్టి వారి పేరు వారి ప్రత్యేక పేరు అవుతుంది మరియు ఒక తరగతిని ఒకటి కంటే ఎక్కువ తరగతులలో స్నేహితుడిగా ప్రకటిస్తారు.
ఫ్రెండ్ క్లాస్ అంటే ఏమిటి, క్లాస్ ఫ్రెండ్ క్లాస్ కావచ్చు క్లాస్ క్లాస్ ఫ్రెండ్ క్లాస్ కావచ్చు.
మేము ఇంకా క్లాస్ టెంప్లేట్ చేయలేదు. మనం టెంప్లేట్ గురించి పూర్తిగా మాట్లాడినప్పుడు, క్లాస్ టెంప్లేట్లు ఫ్రెండ్ క్లాసులుగా ఎలా తయారవుతాయో స్పష్టమవుతుంది.
ఇప్పుడు, ఫ్రెండ్ క్లాస్ కాన్సెప్ట్ను ఉపయోగించి లింక్ జాబితా ఉదాహరణను మళ్ళీ సందర్శించండి.
కాబట్టి మొదటి ఉదాహరణలో నేను ఏమి చేస్తున్నానో, నేను రెండు పంక్తులపై వ్యాఖ్యానించాను, ఇది సభ్యుల ఫంక్షన్ మరియు సభ్యుల తరగతి యొక్క నోడ్ క్లాస్ యొక్క స్నేహితుల యొక్క విధిగా మేము ప్రదర్శిస్తాము.ఒక సభ్యునిగా, బదులుగా నేను మొత్తం జాబితాను తయారు చేసాను ఒక స్నేహితుడిగా.
ఇది వ్రాయడానికి మార్గం. తరగతి మరియు తరగతి పేరు మీరు సూచించే పద్ధతి మరియు మీరు ఈ నోడ్ (నోడ్) తరగతి (తరగతి) umes హిస్తుందని చెప్పడానికి మీరు దాని ముందు ఒక స్నేహితుడు (స్నేహితుడు) కీవర్డ్ని ఉంచారు. మొత్తం జాబితా ఒక స్నేహితుడు.
ఇది ప్రదర్శన మరియు అనుబంధం మాత్రమే కాదు (రిఫరెన్స్ సమయం: 19:14) శోధన వంటి ఇతర సభ్యులను తొలగించడానికి ఇష్టపడే చోట, జాబితా సభ్యులకు మనం ఏ సభ్యుడిని చేర్చగలం, వారందరూ నోడ్ క్లాస్ యొక్క స్నేహితుడు (స్నేహితుడు) , మిగిలిన అమలు అదే.
మిగిలిన అమలు మరియు ఈ అనువర్తనం మునుపటి కంటే భిన్నంగా లేదు.
ఈ మూడు పంక్తులలో మాత్రమే తేడా ఉంది, ఇక్కడ ఫ్రెండ్ ఫంక్షన్ను ఉపయోగించకుండా, మేము ఫ్రెండ్ క్లాస్ని ఉపయోగిస్తున్నాము.
కాబట్టి, ప్రత్యేకించి రెండు తరగతులలో చాలా సభ్యుల విధులు ఉంటే, వ్యక్తిగత సభ్యుని ఫంక్షన్లను స్నేహితుడిగా (స్నేహితుడిగా) చేయడానికి బదులుగా, మీరు నిజంగా మొత్తం తరగతులను స్నేహితుడిగా (స్నేహితుడిగా) చేయాల్సిన అవసరం ఉందా అని మేము పరిగణించాలి. మీ జీవితం సులభం ఎందుకంటే మీరు అన్ని వివిధ సభ్యుల విధులను జాబితా చేయవలసిన అవసరం లేదు, ముఖ్యంగా స్నేహితుడిగా.
కాబట్టి, ఈ ఫ్రెండ్ మెటీరియల్ ఎలా పనిచేస్తుందో ఇప్పుడు మీరు చూసారు.
ఇప్పుడు నేను కొన్ని స్నేహపూర్వక నోడ్లతో ముగించాలి. గమనించదగ్గ మొదటి విషయం స్నేహం, ఒక తరగతి మరొకరి స్నేహితుడు అని మేము చెప్పినప్పుడు, ఈ స్నేహం రెండు తరగతుల మధ్య బైనరీ సంబంధం లాంటిది మరియు ఇది బైనరీ సంబంధం మార్పిడి లేదా పరివర్తన కాదు .
ఇది ప్రయాణించేది కాదు, అంటే A B యొక్క స్నేహితుడు అయితే, B A యొక్క స్నేహితుడు అని అర్ధం కాదు.
నేను B ని A యొక్క స్నేహితునిగా చేయాలనుకుంటే, నేను స్నేహితుని (స్నేహితుడు) B (B) ను A యొక్క తరగతి పరిధిలో ఉంచాలి.
క్లాస్ బి ఈ స్టేట్మెంట్, కానీ ఎ బి యొక్క స్నేహితుడు అనే వాస్తవం బి యొక్క స్నేహితుడు అని అర్ధం కాదు, కనుక ఇది ప్రయాణ సంబంధ సంబంధం కాదు.
అదేవిధంగా, నేను B యొక్క స్నేహితుడిగా A కలిగి ఉంటే, B ఈ చతురస్రాల నుండి C యొక్క స్నేహితుడు, అంటే A C యొక్క స్నేహితుడు (స్నేహితుడు) అని అర్ధం కాదు, అందువల్ల అంటువ్యాధి పనిచేయదు.
స్నేహం కేవలం బైనరీ, కేవలం రెండు తరగతుల మధ్య పని చేయండి మరియు తదుపరి అనుమానం సాధ్యం కాదు.
ఇప్పుడు ఇలా చెప్తున్నప్పుడు, ఫ్రెండ్ ఫంక్షన్ మరియు ఫ్రెండ్ క్లాస్ యొక్క ఈ ఫ్రెండ్ ఫీచర్ వాస్తవానికి భాష యొక్క ఎన్కప్సులేషన్ మరియు దృశ్యమాన నిర్మాణాన్ని మారుస్తుందని దయచేసి గమనించండి.
ఇప్పటివరకు మనకు మూడు రకాల దృశ్యమానత ఉంది, వాటిలో రెండు మేము ఇప్పటికే ప్రభుత్వ మరియు ప్రైవేటులో చర్చించాము, వారసత్వానికి వర్తించే రక్షిత దృశ్యమానతను త్వరలో చర్చిస్తాము.
స్నేహితుడు C ++ లో ఉన్న నాల్గవ రకమైన దృశ్యమానత, ఇక్కడ మీరు కొన్ని ఇతర తరగతులను ప్రత్యేకంగా ఒక తరగతిని సృష్టించవచ్చు, మరికొందరు సభ్యులు స్నేహితుడిగా పని చేస్తారు మరియు ఈ దృశ్యమానతను అందిస్తారు. ఇది పరిమితం చేయబడింది, అయితే ఇక్కడ ఎన్కప్సులేషన్ పూర్తిగా పంక్చర్ చేయబడాలి .
కాబట్టి, మీరు స్నేహితుడిని చేసేది ఇదే, చాలా న్యాయంగా చేయాలి ఎందుకంటే మీరు ఏకపక్షంగా మరొక తరగతి మరియు ఇతర ఫంక్షన్ చేస్తే, గ్లోబల్ ఫంక్షన్ లేదా సభ్యుడు ఫంక్షన్ ఫ్రెండ్. అప్పుడు డేటాను ఉపయోగించడం మరియు తగిన వాటి ద్వారా వాటిని యాక్సెస్ చేయడం వల్ల మీ ప్రయోజనాలన్నీ సభ్యుల ఫంక్షన్ల ఎంపిక పోతుంది.
అందువల్ల, స్నేహితుడు (స్నేహితుడు) ఉపయోగం నిజంగా సహాయపడే సాధారణ పరిస్థితులను ఇక్కడ ఉంచడానికి మేము ప్రయత్నించాము.
మొదటిది మీకు రెండు స్వతంత్ర తరగతులు ఉన్న మాతృక రకం వెక్టర్, కానీ మీకు ఒక కార్యాచరణ ఉంది, ఇక్కడ డేటా సభ్యుడు, రెండు తరగతుల ప్రైవేట్ సభ్యుడు, వెక్టార్తో మాతృక. గుణకారం (మాతృక) విషయంలో పాల్గొనండి.
లేదా జాబితాలోని వివిధ నోడ్ నోడ్ల యొక్క వస్తువుల జాబితా వంటి మరొక తరగతి పైన ఒక తరగతి యొక్క రూపకల్పనలో ఒక తరగతి సృష్టించబడుతున్న పరిస్థితి మీకు ఉంది. మీరు ఒక నోడ్ను ఉపయోగిస్తే జాబితా కార్యాచరణ మీరు జాబితాను దాని స్నేహితుడిగా (నోడ్) ప్రకటిస్తే ఖచ్చితంగా అమలు చేయడం చాలా సులభం అవుతుంది, తద్వారా ఇది జాబితా యొక్క మొత్తం లోపలి భాగంలో చూడవచ్చు.
ఇది మరొక పరిస్థితి.
మూడవది, మేము ఇంకా చర్చించలేదు, కాని నేను ఆపరేటర్లను వారి ఆపరేటర్లలో కొంతమందితో ఓవర్లోడ్ చేయడానికి ప్రయత్నించినప్పుడు, సరైన సింటాక్స్ మరియు సెమాంటిక్స్తో ఓవర్లోడ్ చేయడం చాలా కష్టం, మనకు ఫ్రెండ్ (ఫ్రెండ్) రకం కార్యాచరణ ఉంటే C ++ లో అందుబాటులో లేదు.
నిర్దిష్ట వినియోగదారు నిర్వచించిన తరగతుల కోసం మీరు వాటిని ఓవర్లోడ్ చేసినప్పుడు అవుట్పుట్ స్ట్రీమింగ్ ఆపరేటర్ల పరంగా మేము చూపిస్తాము, కాని సాధారణంగా మీరు స్నేహితుడు (స్నేహితుడు) ఫంక్షన్ మరియు ఫ్రెండ్ క్లాస్ని ఉపయోగించాల్సి ఉంటుంది. కేసు చాలా జాగ్రత్తగా ఉండాలి, పరిమితం మరియు సంప్రదాయవాదంగా ఉండాలి మీకు ఈ విభిన్న పరిస్థితులలో ఒకటి ఉందని మీరు నిజంగా నిర్ధారించుకోవాలి మరియు ఇది వాస్తవానికి జరిగే కొన్ని సంబంధిత పరిస్థితులలో ఒకటి కావచ్చు, లేకపోతే మీరు స్నేహితుడిగా (స్నేహితుడు) లక్షణంగా లేదా తరగతి స్నేహితుడిగా పనిచేస్తే డిజైన్ను సత్వరమార్గం చేయండి, మీరు అసలు వస్తువు క్రింద ఉన్న ఎన్క్యాప్సులేషన్ను విచ్ఛిన్నం చేస్తున్నారు, ఓరియంటెడ్ ఫ్రేమ్వర్క్కు వ్యతిరేకంగా వెళ్తాము, ఇది యాక్సెస్ స్పెసిఫైయర్ యొక్క నిర్వచనం మరియు వస్తువుల సృష్టి ద్వారా మేము చాలా జాగ్రత్తగా నిర్మిస్తున్నాము.
అందువల్ల, స్నేహితుడు (స్నేహితుడు) ఒక శక్తివంతమైన లక్షణం మరియు ఏదైనా శక్తివంతమైన ఆయుధం వలె, ఏదైనా శక్తివంతమైన ఆయుధం వలె, దీనిని చాలా జాగ్రత్తగా మరియు న్యాయంగా ఉపయోగించాలి.
ఈ మాడ్యూల్లో, మేము ఫ్రెండ్ ఫంక్షన్ మరియు ఫ్రెండ్ క్లాస్ అనే భావనను క్లుప్తంగా పరిచయం చేసాము మరియు మాతృక ఫంక్షన్ మరియు రిస్క్ మానిప్యులేషన్ ఉదాహరణలతో ఫ్రెండ్ ఫంక్షన్ () యొక్క ఫంక్షన్ను పరిచయం చేసాము. ఫ్రెండ్ ఫంక్షన్) మరియు ఫ్రెండ్ క్లాస్, మరియు ఫ్రెండ్ అని మేము ప్రత్యేకంగా పేర్కొన్నాము వేరొక రకమైన దృశ్యమానత మరియు కొంత ప్రమాదకరమైనది, ఇది ఏకపక్షంగా ఉన్నందున ఉపయోగించటానికి ప్రమాదకరమైనది, ఈ పద్ధతి ఎన్క్యాప్సులేషన్ను విచ్ఛిన్నం చేస్తుంది మరియు అందువల్ల స్నేహితుడిని చాలా వివేకవంతమైన డిజైన్తో సరైన డిజైన్ సమర్థనతో ఉపయోగించాలి, ఎందుకు విచ్ఛిన్నం కావాలి అనే దానిపై.
మీరు ముందుకు వెళ్లి, చాలా రూపకల్పన మరియు అమలు చేయడం ప్రారంభించినప్పుడు, మీరు స్నేహితుడిని ఉపయోగించాల్సిన రకాన్ని మేము ఎల్లప్పుడూ కనుగొంటాము. నేను ఇక్కడ చర్చించిన మూడు పరిస్థితులలో ఇది ఒకటి అవుతుంది, మరియు మీరు కనుగొంటే ఒకటి కావాలి, మేము చర్చించిన మూడు మాదిరిగా లేని పరిస్థితిలో ఫ్రెండ్ ఫంక్షన్ లేదా ఫ్రెండ్ క్లాస్ వాడాలి, అప్పుడు మీరు చాలా జాగ్రత్తగా మరియు జాగ్రత్తగా ఉండాలి మరియు ఇది ఒక స్నేహితుడు ఉపయోగించాల్సిన పరిస్థితి అని తనను తాను ఒప్పించుకోవాలి.