Transcript for:
OOP Lecture Notes for Interviews

हाय एवरीवन एंड वेलकम टू अपना कॉलेज और आज के अपने वन शॉट के अंदर हम ज़ीरो से लेके एडवांस तक पूरे के पूरे ऊप्स को कवर करेंगे फ्रॉम इंटरव्यू पॉइंट ऑफ़ व्यू चाहे आपका प्लेसमेंट का इंटरव्यू आ रहा है चाहे हमारा इंटर्नशिप का इंटरव्यू आ रहा है या फिर हम कॉलेज एग्जाम्स में ऊप्स के एग्जाम की प्रिपरेशन कर रहे हैं सारी की सारी चीजों के लिए यह वन शॉट जो है वह सफिशिएंट होने वाला है पर इसको स्पेसिफिकली हमने प्लेसमेंट एंड इंटर्नशिप इंटरव्यूज के लिए तैयार किया है तो ऊप्स यानी ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग एक बहुत ही ज्यादा इंपॉर्टेंट कांसेप्ट होता है जो मेजॉरिटी कंपनीज अ अपने टेक इंटरव्यूज के अंदर जिसके सवाल पूछती हैं तो ऊप्स की एक स्ट्रांग अंडरस्टैंडिंग होना बहुत जरूरी है ताकि हमारे इंटरव्यूज बहुत अच्छे से जाएं उसके साथ में हमारी अंडरस्टैंडिंग ऑफ प्रोग्रामिंग भी बहुत ज्यादा बड़ी क्योंकि कंपनीज के अंदर कई जगह जाके हमें ऊप्स को बहुत बार इंप्लीमेंट करना होता है तो इसके कंसेप्ट पहले से ही जितने स्ट्रांग होंगे उतना हमें बाद में जाके फायदा हो रहा होगा तो आज का जो हमारा वन शॉट है इसके अंदर हम थ्योरी कॉन्सेप्ट्स को तो कवर करेंगे ही हम बहुत सारे एग्जांपल्स को कवर करेंगे हम काफी सारी इंपॉर्टेंट डेफिनेशंस को कवर करेंगे जिनको हमें याद रखना है क्योंकि वैसे के वैसे वो इंटरव्यूज के अंदर पूछी जाती हैं और इसके साथ में हम हर एक सिंगल कांसेप्ट का कोड भी लिखकर देख रहे होंगे तो हर चीज का हमें प्रैक्टिकल एग्जांपल मिल रहा होगा कि जिस चीज को हम पढ़ रहे हैं ये कोड के अंदर c+ के अंदर ऐसी दिखाई देती है एंड साथ में इस पूरे वन शॉट के एंड पे हमें 30 एमसीक्यू क्वेश्चंस मिल रहे होंगे जिससे हमारी जो भी अंडरस्टैंडिंग हमने ली पूरी लेक्चर के दौरान वो और ज्यादा स्ट्रांग हो रही होगी तो शुरुआत करते हैं अपनी ऊप्स की इस जर्नी को हाय एवरीवन और अब हम शुरुआत करने वाले हैं अपनी ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग की जर्नी नी से अब ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग की जब भी हम बात करते हैं इस लेक्चर के अंदर बेसिकली हम अपनी ऑब्जेक्ट्स की बात करेंगे कि ऑब्जेक्ट्स एगजैक्टली c+ प के अंदर क्या होती है और ऑब्जेक्ट से रिलेटेड डिफरेंट डिफरेंट कॉन्सेप्ट्स का क्या मतलब होता है c+ प के अंदर ये चैप्टर एक तो सबसे पहले इसलिए इंपॉर्टेंट है क्योंकि इंटरव्यूज में जब भी इंटर्नशिप प्लेसमेंट के इंटरव्यूज होते हैं फॉर एसडी पोजीशन सॉफ्टवेयर इंजीनियरिंग पोजीशन तो वहां पे इससे रिलेटेड काफी सारे क्वेश्चंस आते हैं तो इसीलिए इस चैप्टर के अंदर एक तो डेफिनेशंस बहुत ज्यादा इंपॉर्टेंट हो जाती हैं क्योंकि डायरेक्टली इंटरव्यूअर हमसे किसी भी कॉम्प्लेक्टेड फिनेश पूछ सकते हैं उसके साथ में एग्जांपल्स जितने भी हम डिस्कस करेंगे वो इंपॉर्टेंट हो जाते हैं क्योंकि कभी भी इंटरव्यूअर हमसे साथ में एग्जांपल भी पूछ सकते हैं तो चीजों के मतलब तो हम समझेंगे ही साथ के साथ डेफिनेशन एंड एग्जांपल्स की भी हम डिटेल में बात करेंगे तो जब भी हम ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग कहते हैं तो उसका एगजैक्टली मतलब क्या होता है ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग बेसिकली कोड को ही लिखने का एक और बेहतर तरीका है ऐसा नहीं है कि ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग हमेशा यूज करना कंपलसरी होता है जनरली बहुत सारे रियल लाइफ सिनेरियो ऐसे देखे गए हैं जिसमें कोड में अगर आप ऊप्स के कांसेप्ट को यूज़ करते हैं तो हमारा कोड और ज्यादा बेटर बन जाता है स्पेशली ऑर्गेनाइजेशन लेवल पे यानी जब हम कंपनीज के अंदर जाकर काम करेंगे अब वैसे तो जनरली हम जब भी c+ का कोड लिखते हैं हम बिना ऊप्स के सारा का सारा लॉजिक c+ प् में इंप्लीमेंट कर सकते हैं लेकिन जब हम ऊप्स को यूज करके उसी सेम लॉजिक को इंप्लीमेंट करते हैं तो काफी सारे रियल लाइफ सिनेरियो ऐसे होते हैं जिनको कोड में रिप्रेजेंट करना जिनके लिए c+ प् का कोड लिखना बहुत आसान हो जाता है और ये जो जो लाइन है यह बहुत इंपॉर्टेंट है क्योंकि इसका मतलब ही हम पूरे लेक्चर के अंदर सीख रहे होंगे कि कैसे रियल लाइफ सिनेरियो को हम c+ प् कोड के अंदर कन्वर्ट करते हैं यूजिंग उप्स कांसेप्ट अब अगर उप्स के प्रैक्टिकल इंप्लीमेंटेशन की बात करें तो c+ के अंदर अगर हमने वेक्टर लाइब्रेरी के बारे में सुना है या स्ट्रिंग लाइब्रेरी को यूज़ किया है या हमने स्टैक लाइब्रेरी को यूज़ किया है तो ये सारी की सारी लाइब्रेरी c+ प के एसटीएल के अंदर एजिस्ट करती हैं बिकॉज़ ऑफ प्स क्योंकि इन सब को इंप्लीमेंट करने के लिए इंटरनली उप्स के कांसेप्ट को यूज़ किया जाता है तो हम भी अपनी बहुत सारी क्लासेस क्रिएट करने वाले हैं एंड बहुत सारे ऊप्स के कांसेप्ट सीखने वाले हैं इस पूरे चैप्टर के अंदर अब ऊप्स के कांसेप्ट सीखने से पहले दो इंपॉर्टेंट टर्म्स हैं जिनका हमें पता होना चाहिए एक होती है हमारी क्लास और एक होती है हमारी ऑब्जेक्ट ऑब्जेक्ट क्या होती है रियल वर्ल्ड के अंदर सारी कोई भी आप एंटिटी उठा लें एंटिटी यानी कोई भी अगर हम चीज उठा लें तो हम उसे ऑब्जेक्ट कह सकते हैं ये पेन एक ऑब्जेक्ट है मेरा लैपटॉप एक ऑब्जेक्ट है या हमारा फोन एक ऑब्जेक्ट होता है तो जितनी भी हमारी रियल वर्ल्ड की एंटिटीज होती हैं किसी भी चीज को हम ऑब्जेक्ट कह देते हैं और इन्हीं एंटिटीज को जब हम c+ प के कोड के अंदर कन्वर्ट करना चाहते हैं तो वहां पर c+ प के कोड के अंदर भी इन्हें हम ऑब्जेक्ट्स ही बना देते हैं और क्लास क्या होती है क्लास इज बेसिकली लाइक अ ब्लूप्रिंट ऑफ दीज ऑब्जेक्ट्स ब्लूप्रिंट का काम होता है यह बताना कि ऑब्जेक्ट कैसी दिखेगी इसके लिए एक बहुत बेसिक सा एग्जांपल लेते हैं फॉर एग्जांपल अंदर एक ब्लूप्रिंट बनाया होगा कि उनकी सारी गाड़ियां कैसी दिखनी चाहिए तो बताता है कि यह ऑब्जेक्ट कैसी दिखनी चाहिए यह ऑब्जेक्ट कैसी दिखनी चाहिए इस ब्लूप्रिंट को हम क्लास कह देते हैं तो क्लास कैन आल्सो बी अ ब्लूप्रिंट फॉर ऑब्जेक्ट्स इट कैन आल्सो बी अ ग्रुप ऑफ ऑब्जेक्ट्स इसको हम ग्रुप ऑफ ऑब्जेक्ट्स की तरह भी इमेजिन कर सकते हैं जैसे हमारे स्कूल के अंदर कॉलेज के अंदर हम सारे स्टूडेंट्स एक ही क्लास के अंदर बैठते हैं तो वो क्लास क्या हो गई वो क्लास हमारे सारे स्टूडेंट्स का ग्रुप हो गई और उस केस में हम स्टूडेंट एज ऑब्जेक्ट्स बन जाते हैं अपने रियल वर्ल्ड सिनेरियो के अंदर अब एक और काफी प्रैक्टिकल सा एग्जांपल लेते हैं इसको और डिटेल में समझने के लिए फॉर एग्जांपल हमारे कॉलेज के अंदर हमारा कॉलेज का पूरा एक सिस्टम एजिस्ट करता होगा जिसमें हर एक टीचर का अपना एक अकाउंट बना होगा यानी जितने भी टीचर्स कॉलेज के अंदर काम करते हैं उन सबकी इंफॉर्मेशन कॉलेज के सिस्टम में स्टोर होती होगी तो हमें भी बोला जाता है कि हमें c+ प को यूज़ करके ऐसा सिस्टम डिजाइन करना है अपने कॉलेज के लिए जो सारे के सारे टीचर्स की इंफॉर्मेशन को स्टोर कर सके तो उसमें सबसे पहले तो हम लॉजिकली देखेंगे कि ये जो टीचर है टीचर के साथ कौन-कौन सी इंफॉर्मेशन स्टोर होनी चाहिए एक तो टीचर के लिए हर एक एक टीचर का हम नेम स्टोर करा सकते हैं उसके साथ में हम हर एक टीचर का जो डिपार्टमेंट है वह स्टोर करा सकते हैं हर एक टीचर का जो सब्जेक्ट है उसे स्टोर करा सकते हैं हर एक टीचर की जो सैलरी है हम उसे स्टोर करा सकते हैं तो ये सारी चीजें क्या हो गई तो ये सारी चीजें हो गई कुछ प्रॉपर्टीज इन्हें हम टेक्निकल भाषा में प्रॉपर्टीज कहते हैं प्रॉपर्टीज यानी कुछ वैल्यूज जो इस एंटिटी के साथ असोसिएशन कुछ ना कुछ प्रॉपर्टीज होंगी कि भाई कोड में अगर हमें टीचर की इंफॉर्मेशन स्टोर करवानी है तो उसके साथ में यह एक्स्ट्रा इंफो भी हमें स्टोर करानी पड़ेगी और साथ में टीचर्स के कुछ-कुछ एक्स्ट्रा फंक्शंस भी होंगे जैसे क्या-क्या फंक्शंस होंगे हो सकता है किसी टीचर के लिए हमारे पास एक फंक्शन हो चेंज कर दो टीचर का डिपार्टमेंट कि टीचर अगर लेट्स सपोज मैकेनिकल डिपार्टमेंट से सिविल डिपार्टमेंट के अंदर शिफ्ट होते हैं तो चेंज डिपार्टमेंट एक ऐसा फंक्शन है जो इन टीचर के साथ एसोसिएटेड होना चाहिए ताकि कोई भी जाकर सिस्टम के अंदर टीचर का डिपार्टमेंट चेंज कर सके उसके साथ में हो सकता है सैलरी के लिए टैक्स कैलकुलेट करना या कुछ और डिफरेंट डिफरेंट और भी फंक्शंस हो सकते हैं टीचर से एसोसिएटेड पर एक बेसिक फंक्शन हमने ले लिया तो टीचर क्या बन गया टीचर इस केस में क्योंकि हमारी एक रियल वर्ल्ड एंटिटी है तो टीचर को तो हम बनाएंगे एक तरीके से अपना ऑब्जेक्ट और हर ऑब्जेक्ट के साथ हमारी डिफरेंट डिफरेंट प्रॉपर्टीज एसोसिएटेड होती हैं और हमारे कुछ फंक्शंस एसोसिएटेड होते हैं जिनको टेक्निकल भाषा में हम अपने मेथड कहते हैं मेथड इज नथिंग बट अ फंक्शन व्हिच इज रिटन इनसाइड अ क्लास क्लास या ऑब्जेक्ट्स के लिए जो हम अपने फंक्शंस बनाते हैं उन्हीं को बेसिकली हम अपने मेथड कह देते हैं अब वैसे तो नॉर्मली अगर हमें एक टीचर की इंफॉर्मेशन स्टोर करनी होती c+ कोड के अंदर तो उसके लिए हम क्या करते उसके लिए हम एक स्ट्रिंग बना लेते कि भाई हमें अपनी टीचर कोई t1 है उसका नेम स्टोर करना है तो ये एक स्ट्रिंग t1 नेम हो गई उसके बाद हम एक और स्ट्रिंग बना लेते कि हमें अपनी टीचर t1 के लिए उनका डिपार्टमेंट स्टोर करना है और इसी तरीके से फिर कोई दूसरी टीचर आती तो हमें दोबारा लिखना पड़ता स्ट्रिंग t2 का हमें नेम स्टोर करना है और हमें स्ट्रिंग t2 का डिपार्टमेंट स्टोर करना है तो इस तरीके से अगर हमारे सिस्टम के अंदर लेट्स सपोज 50 टीचर्स हैं तो उन सबके लिए बार-बार रिपीट कर कर के रिपीट कर कर के हमें कोड लिखना पड़ेगा अगर हम सिर्फ वेरिएबल बना रहे हैं तो तो ऐसे केस में क्या होता है कोड रीयूज नहीं हो पाता अगर एक बार हमने लॉजिक लिख ही लिया तो उस लॉजिक को हम दोबारा क्यों लिखें ये तो बैड प्रोग्रामिंग है तो इसी बैड प्रोग्रामिंग से बचने के लिए हम ऊप्स कांसेप्ट यूज करते हैं कि एक बार क्लास बना दो एक बार ब्लूप्रिंट बन गया ना यानी एक बार फैक्ट्री ने ब्लूप्रिंट बता दिया तो उसके बाद toyota's का कांसेप्ट या क्लासेस और ऑब्जेक्ट्स का कांसेप्ट क्या कहता है ये कांसेप्ट हमें कहता है कि आप एक क्लास बना लो क्लास मतलब आप एक ब्लूप्रिंट लिख लो कि एक टीचर कैसा दिखना चाहिए उसके बाद आप क्लास की ऑब्जेक्ट वन बना लो मतलब टीचर वन क्लास की ऑब्जेक्ट टू बना लो मतलब टीचर टू क्लास के ऑब्जेक्ट थ्री हम क्रिएट कर लेंगे टीचर थ्री तो अब आपको चाहे 50 टीचर्स चाहिए आपको चाहे 100 टीचर्स चाहिए आपको चाहे 1 लाख टीचर्स चाहिए अब आपको बार-बार कोड रिपीट नहीं करना पड़ेगा कोड के अंदर रीयूज बिलिटी आ जाएगी क्योंकि इसी सेम क्लास को जो ब्लूप्रिंट है उसी को यूज करके हम सारी ऑब्जेक्ट्स को जाकर अब क्रिएट कर सकते हैं अब ऑब्जेक्ट्स एंड क्लासेस का जो कांसेप्ट है ये सिर्फ c+ के अंदर एजिस्ट नहीं कर यह जावा जैसी लैंग्वेजेस के अंदर भी एजिस्ट करता है या अगर हम पाइथन कर रहे हैं जावास्क्रिप्ट कर रहे हैं दूसरी कोई लैंग्वेज कर रहे हैं तो वहां पे भी जनरली ये कांसेप्ट जो है वो एजिस्ट करता है और अगर आप कंपनी में जाकर काम करेंगे तो वहां पे तो उप्स काफी ज्यादा यूज होती है हमारी डे टू डे प्रोग्रामिंग के अंदर अब जब भी हम उप्स की बात करते हैं एक और प्रैक्टिकल एग्जांपल ले लेते हैं फॉर एग्जांपल amazononline.in एक नाम है हर प्रोडक्ट का अपना एक प्राइस है हर प्रोडक्ट का अपना एक डिस्क्रिप्शन है हर प्रोडक्ट के लिए हो सकता है कि कुछ डिस्काउंट अमाउंट हो कि इस पे 5 पर डिस्काउंट चल रहा है 10 पर चल रहा है या 0 पर चल रहा है तो ये तो हो गया amazononline.in इंटरनली हैं जनरली हम जिस भी अपनी एंटिटी के लिए क्लास बनाना चाहते हैं फॉर एग्जांपल हमें टीचर्स को क्रिएट करने के लिए क्लास बनानी है टीचर्स का सिस्टम क्रिएट करने के लिए तो हम अपनी क्लास का नाम टीचर ही रखेंगे एंड इस तरीके से फिर हम अपनी क्लास को क्रिएट कर लेते हैं तो एक जनरल सिंटेक्स होता है कोड के अंदर हमारी क्लास को लिखने का इसी के अंदर हम अपनी प्रॉपर्टीज लिखते हैं और इसी के अंदर हम अपने मेथड्स को लिख रहे होते हैं तो एक बार एक टीचर क्लास को क्रिएट करते हैं वी हैव इसके अंदर हमने आयो स्ट्रीम हेडर फाइल इंक्लूड की है साथ के साथ हमने स्ट्रिंग को इंक्लूड किया है क्योंकि हम स्ट्रिंग टाइप का डाटा डिक्लेयर करने वाले हैं तो ये बेसिकली हमारा बॉयल प्लेट कोड है अब इस कोड के अंदर हम एक क्लास क्रिएट करेंगे तो क्लास हमारा कीवर्ड हो गया क्लास का नाम होने वाला है टीचर इस तरीके से कर्ली ब्रेसस लगाएंगे और हमेशा क्लास के एंड में एक सेमीकलन लगता है जिससे पता चलता है हमारी क्लास यहां पर एंड कर रही है अब इस क्लास के अंदर हम सबसे पहले तो वह सारी प्रॉपर्टीज बताते हैं जो क्लास के अंदर होनी चाहिए फिर हम सारे मेथड्स बता बताते हैं जो क्लास के अंदर होने चाहिए मतलब टीचर की जब हम ऑब्जेक्ट बनाएंगे तो ऑब्जेक्ट के पास कौन-कौन सी क्वालिटीज होनी चाहिए कौन-कौन सी वैल्यूज होनी चाहिए एक तो टीचर का नेम होना चाहिए नेम किस टाइप का होगा स्ट्रिंग टाइप का तो टीचर के पास एक स्ट्रिंग नेम होनी चाहिए टीचर के पास एक स्ट्रिंग डिपार्टमेंट होना चाहिए टीचर के पास एक स्ट्रिंग सब्जेक्ट होना चाहिए साथ के साथ टीचर की कुछ सैलरी होनी चाहिए तो फ्लोट करके हम अपनी सैलरी लिख सकते हैं या फ्लोट की जगह इसे हम डबल बना ले हैं तो ये हमारी सैलरी हो गई तो ये क्या हो गई टीचर से रिलेटेड कुछ-कुछ हमारी प्रॉपर्टीज हो गई इन्हीं प्रॉपर्टीज को टेक्निकल भाषा में या तो हम प्रॉपर्टीज कह देते हैं या इन्हें हम एट्रिक्स शब्द सुने जहां भी आप प्रॉपर्टी शब्द सुने उसका मतलब है कि हम इन सारी वैल्यूज की बात कर रहे हैं उसके अलावा हमारे पास टीचर से रिलेटेड कुछ-कुछ मेथड्स भी होते हैं लेट अस मिनिमाइज दिस टीचर से रिलेटेड मेथड्स में क्या-क्या मेथड्स हो सकते हैं हमने एक मेथड डिस्कस किया है मेथड यानी फंक्शन ही आपको बस लिखना है बस वो फंक्शन इस क्लास के अंदर हम लिख रहे हैं तो यहां पर हम बना सकते हैं वॉइड चेंज डिपार्टमेंट चेंज डिपार्टमेंट फंक्शन क्या करता है एक स्ट्रिंग लेता है इसको हम न्यू डिपार्टमेंट कह सकते हैं न्यू डिपार्टमेंट नाम की स्ट्रिंग लेता है और पुरानी जो ये हमारी डिपार्टमेंट वैल्यू थी इस डिपार्टमेंट वैल्यू के अंदर ये न्यू डिपार्टमेंट वाली वैल्यू असाइन कर देता है तो यह हमने अपना एक मेथड लिख दिया इसके अलावा हम डिफरेंट डिफरेंट जितने भी चाहे उतने मर्जी यहां पर मेथड्स लिख सकते हैं मेथड्स को ही c+ के अंदर हम मेंबर फंक्शंस भी कहते हैं मेंबर फंक्शंस इन्हें इसलिए कहते हैं क्योंकि यह जो फंक्शंस हैं यह हमारी इस क्लास के मेंबर बन जाते हैं तो इसीलिए इनको मेंबर फंक्शंस भी बोल दिया जाता है तो जहां भी मेंबर फंक्शन सुने जहां भी मेथड सुने मतलब हम क्लास के फंक्शंस की बात कर रहे हैं तो इस तरीके से तो हमने अपनी क्लास को क्रिएट कर दिया अब ऑब्जेक्ट को कैसे क्रिएट करें ऑब्जेक्ट को क्रिएट करने के लिए हम मेन फंक्शन के अंदर क्या कर सकते हैं सबसे पहले अपनी क्लास का नाम लिखेंगे फिर अपनी ऑब्जेक्ट का नाम लिखेंगे ऑब्जेक्ट को हम ओबी जव भी लिख सकते हैं या ये अगर टीचर है तो इसे t1 कह देते हैं तो ये हमारी टीचर t1 ऑब्जेक्ट बन गई मतलब हमने अपने फर्स्ट टीचर के लिए एक ऑब्जेक्ट क्रिएट कर ली इसी तरीके से हम चाहें तो जितने मर्जी टीचर्स के लिए ऑब्जेक्ट्स क्रिएट कर सकते हैं यह हमारी t3 ऑब्जेक्ट हो गई ये हमारी t4 ऑब्जेक्ट हो गई और अब हर एक जो इंडिविजुअल ऑब्जेक्ट बनी है हर एक इंडिविजुअल ऑब्जेक्ट के पास अपना नेम डिपार्टमेंट सब्जेक्ट सैलरी सारी इंफॉर्मेशन है बस हमें क्या करना है अब उस इंफॉर्मेशन को जाकर अपडेट करना है अब लेट्स टेक एन एग्जांपल ऑफ ओनली दिस टीचर t1 अब अगर t1 को हम वैल्यू असाइन करना चाहते हैं यानी अगर हमें किसी भी ऑब्जेक्ट के लिए उसकी प्रॉपर्टीज को एक्सेस करना है तो हम डॉट ऑपरेटर का यूज करते हैं डॉट ऑपरेटर कहने का मतलब है कि फॉर एग्जांपल हमने एक ऑब्जेक्ट क्रिएट की टीचर t1 अब हमें पता है इंटरनली t1 के पास डिफरेंट डिफरेंट प्रॉपर्टीज आ गई हैं t1 के पास एक नेम भी है t1 के पास एक डिपार्टमेंट भी है दूसरी भी इंफॉर्मेशन है अब t1 का अगर हमें नेम एक्सेस करना है तो हम सिंपली लिखेंगे t1 नेम तो इसे अब हम एक सिंगल वेरिएबल की तरह ट्रीट कर सकते हैं इसके अंदर कोई वैल्यू असाइन करनी है तो इक्वल टू वैल्यू लिख देंगे इसकी वैल्यू प्रिंट करवानी है तो हम सिंपली सी आउट कर सकते हैं t1 नेम तो इसका मतलब होगा कि हम t1 ऑब्जेक्ट के नेम प्रॉपर्टी को एक्सेस करने की कोशिश कर रहे हैं उसी तरीके से अगर फंक्शन को एक्सेस करना है मेथड को एक्सेस करना है तो t1 चेंज डिपार्टमेंट इस तरीके से हम अपने मेथड को एक्सेस कर सकते हैं तो लेट अस ट्राई टू असाइन अ नेम टू द टीचर लेट्स सपोज t1 नेम में मैंने अपना नेम लिख दिया और t1 डॉ सब्जेक्ट के अंदर इसी तरीके से हम सब्जेक्ट लिख देते हैं c+ प एंड t1 डॉ डिपार्टमेंट के अंदर हम डिपार्टमेंट में लिख देते हैं लेट्स सपोज कंप्यूटर साइंस एंड t1 सैलरी में मैंने अपनी एक लेट्स सपोज 25000 की सैलरी लख रही अब यह क्या हो गई यह मेरी बेसिक वैल्यूज हो गई जिनको मैंने असाइन कर दिया पर अभी अगर हम इस कोड को रन करेंगे वैसे तो अभी कुछ नहीं प्रिंट होना चाहिए यहां पर सी आउट करते हैं t1n की वैल्यू को अभी अगर हम इस कोड को सिंपल से कोड को रन करने की कोशिश करेंगे तो दिस इज द कमांड दैट आई एम राइटिंग फॉर रनिंग द कोड क्योंकि मेरी फाइल का नाम है upsc.com को आई एम इन्वोकिंग मैंने फ्लैग इसलिए यूज़ किया है क्योंकि मैं c+ 11 को यूज़ कर रही हूं पर आप इसको बिल्कुल हटा सकते हैं कंपनी अपने टर्मिनल कमांड से उससे कोई फर्क नहीं पड़ेगा एंड दिस इज द एग्जीक्यूटेबल फाइल जो मेरे लिए जनरेट होगी तो जब मैं इसे रन करूंगी तो मेरे पास यहां पर एक एरर आने वाला है और एरर क्या कह रहा है एरर कह रहा है डिपार्टमेंट इज अ प्राइवेट मेंबर ऑफ टीचर सैलरी इज अ प्राइवेट मेंबर ऑफ टीचर नेम इज अ प्राइवेट मेंबर ऑफ टीचर इंप्लीड डिक्लेयर्ड प्राइवेट हियर तो ये बार-बार ये प्राइवेट मेंबर प्राइवेट मेंबर इस तरीके की चीजें क्यों दिखा रहे हैं मुझे एक्चुअली जब भी हम क्लासेस एंड ऑब्जेक्ट्स को स्टडी करते हैं तो उसमें सिर्फ प्रॉपर्टीज और सिर्फ मेंबर फंक्शन डिफाइन करना काफी नहीं होता इनके साथ-साथ हमें एक और एडिशनल चीज डिफाइन करनी पड़ती है जिसको कोडिंग के अंदर हम कहते हैं एक्सेस मॉडिफाई एक स्पेशल कीवर्ड होता है कीवर्ड मतलब कोई एक स्पेशल रिजर्व वर्ड होता है और हमारे पास तीन एक्सेस मॉडिफाई होते हैं c+ के अंदर एक होता है प्राइवेट एक होता है पब्लिक एक होता है प्रोटेक्टेड क्लास के जिस भी डाटा को डेटा मतलब प्रॉपर्टीज या एट्रियो क्लास के जिस भी डाटा एंड मेथड्स को हम चाहते हैं कि वो सिर्फ एक्सेसिबल हो इनसाइड द क्लास मतलब क्लास के अंदर जो भी हमने एट्रिया हैं जो भी हमने मेथड्स क्रिएट किए हैं जिसको हम क्लास के बाहर नहीं भेजना चाहते सिर्फ क्लास के अंदर तक ही उसकी एक्सेस रखना चाहते हैं उन सबको हम प्राइवेट बना देते हैं और बाय डिफॉल्ट बाय डिफॉल्ट c+ प के अंदर सब कुछ प्राइवेट होता है c+ प के अंदर आपके एट्रबीक होते हैं c+ प् के अंदर आपके मेंबर फंक्शंस भी प्राइवेट होते हैं इसीलिए हमारे पास एरर आया था कि ये जो नेम आप इस क्लास के बाहर मतलब मेन फंक्शन के अंदर ये जो हम नेम को एक्सेस करके उसकी वैल्यू चेंज कर रहे हैं या नेम को हम प्रिंट करवा रहे हैं ये सारी चीजें पॉसिबल नहीं है क्योंकि c+ प के अंदर नेम क्या हो गया इस क्लास का एक प्राइवेट एट्रियो है उसको हम क्लास के बाहर एक्सेस कर ही नहीं सकते तो वो एरर एक्सेस मोडिफाय की वजह से आ रहा था तो अगर किसी भी क्लास के अंदर एक्सप्लीसिटली अगर हम किसी भी चीज को प्राइवेट दिखाना चाहते हैं तो हम उसके लिए क्या कर सकते हैं उसके लिए हम अपना प्राइवेट कीवर्ड लिख सकते हैं यहां पर जैसे ही हमने लिख दिया प्राइवेट और तो ये हाईलाइट हो गया तो प्राइवेट कोलन लिखने का मतलब है इसके बाद जितनी भी चीजें लिखी होंगी वह सारी की सारी ऑटोमेटिक प्राइवेट हो जाएंगी बाय डिफॉल्ट भी प्राइवेट होती है पर हम इस तरीके से लिख कर भी बता सकते हैं वी हैव अनदर एक्सेस मॉडिफाई को हम पब्लिक डिक्लेयर करेंगे डाटा और मेथड्स को वो सारे के सारे सबको एक्सेसिबल होंगे मतलब उनको हम क्लास के अंदर भी एक्सेस कर सकते हैं और उन्हें हम क्लास के बाहर भी एक्सेस कर सकते हैं जैसे फॉर एग्जांपल यहीं पर प्राइवेट की जगह अगर मैंने लिख दिया पब्लिक तो उसका मतलब मतलब है ये पूरा डाटा एंड ये पूरी वैल्यूज ये पूरा फंक्शन अब क्लास के बाहर एक्सेसिबल होगा तो ये तो हो गई क्लास अब ये मेन फंक्शन के अंदर भी हम एक्सेस कर पाएंगे और अब हमारे कोड के अंदर कोई एरर नहीं आएगा लेट अस मिनिमाइज दिस अ बिट एंड रिर आवर कोड तो जैसे ही कोड को हम रीरंग करेंगे इस बार तो हमारे लिए हमारे टीचर का नाम प्रिंट हो जाएगा तो इस तरीके से हम कोई भी वैल्यू चाहे तो प्रिंट करवा सकते हैं एंड एक तीसरा एक्सेस मॉडिफाई जिसको हम कहते हैं प्रोटेक्टेड प्रोटेक्टेड को वैसे जब हम इन्हेरिटेंस का कांसेप्ट करेंगे तब और ज्यादा डिटेल में कर रहे होंगे क्योंकि अभी इसका कांसेप्ट इतना ज्यादा आपको क्लियर नहीं होगा पर प्रोटेक्टेड का मतलब होता है जिस भी डाटा एंड मेथड को हम एक तो क्लास के अंदर एक्सेसिबल कराना चाहते हैं और एक अपनी डिराइवर एक्सेसिबल कराना चाहते हैं बेसिकली जब इन्हेरिटेंस होती है तो एक क्लास अपनी प्रॉपर्टीज दूसरी क्लास को भेजती है तो दूसरी क्लास में प्राइवेट प्रॉपर्टीज नहीं जा सकती तो वहां पर जिस भी प्राइवेट प्रॉपर्टी को हम इस छोटी क्लास के अंदर भेजना चाहते हैं उन सारी प्रॉपर्टीज को हम प्रोटेक्टेड बना देते हैं या उन मेथड्स को हम प्रोटेक्टेड बना देते हैं पर यह वाला जो कांसेप्ट है यह प्रोटे ड का कांसेप्ट इन्हेरिटेंस करते टाइम हम डिटेल में करेंगे तो यह वहां पे आपको पूरा क्लियर हो जाएगा अभी के लिए सिर्फ प्राइवेट एंड पब्लिक के ऊपर फोकस करना है प्राइवेट वो है जिसे क्लास एक्सेस कर सकते हैं क्लास के अंदर मतलब यह फंक्शन प्राइवेट को एक्सेस कर सकता है यहां पे डिपार्टमेंट प्राइवेट था तो यहां कोई एरर नहीं आएगा लेकिन पब्लिक को हमारा मेन फंक्शन भी एक्सेस कर सकता है या पब्लिक को कोई दूसरी क्लास भी एक्सेस कर सकती है हम चाहते तो एक क्लास हमने यहां टीचर की बनाई थी एक क्लास हम यहां अपने स्टूडेंट की भी बना सकते थे तो स्टूडेंट की भी डिफरेंट प्रॉपर्टीज हो सकती हैं तो स्टूडेंट की इस तरीके से हम अपनी प्रॉपर्टीज डिफाइन कर सकते हैं कि स्टूडेंट के पास एक स्टूडेंट का नाम होगा एक हो सकता है इंटी जर रोल नंबर हो स्टूडेंट का एक हो सकता है इंटी जर एज हो स्टूडेंट की तो इस तरीके से मल्टीपल प्रॉपर्टीज हमारी स्टूडेंट क्लास की भी हो सकती हैं जो स्टूडेंट क्लास के ऑब्जेक्ट के पास हो अब लेट्स सपोज हमने इस तरीके से अपनी क्लास क्रिएट की टीचर क्लास अब वैसे तो जनरली जो कॉलेजेस के सिस्टम होते हैं उसमें नेम डिपार्टमेंट सब्जेक्ट यह ऐसी चीज हैं जिनकी एक्सेस हम हर किसी को दे सकते हैं पर सैलरी की एक्सेस जनरली जो हमारी अकाउंट्स वाली टीम होती है उसके पास होती है तो हम क्या कर सकते हैं इस सैलरी को हम पब्लिक की जगह एक प्राइवेट मेंबर बना सकते हैं तो यहां से इसे कट कर लेंगे एंड ऊपर क्या करेंगे अपना एक प्राइवेट फ्लैग हम डिक्लेयर कर सकते हैं प्राइवेट एक्सेस मॉडिफाइड कर देंगे तो अब ये हमारी टीचर क्लास है जिसमें ये मेंबर प्राइवेट है और ये जो सारे के सारे मेंबर्स हैं ये सारे के सारे मेंबर्स पब्लिक हैं अब यहां पे जब हम सैलरी को एक्सेस करेंगे तो अब यहां पे एरर आ क्योंकि सैलरी अब क्या बन गई सैलरी अब प्राइवेट बन गई तो यहां पर सैलरी इज अ प्राइवेट मेंबर ऑफ टीचर तो इस वैल्यू को अब हम यहां पर एक्सेस नहीं कर पाएंगे पर बाकी सारी वैल्यूज को हम एक्सेस कर सकते हैं तो इस तरीके से डिपेंडिंग ऑन द सिचुएशन कि हम कौन सी ऑब्जेक्ट को इंप्लीमेंट कर रहे हैं उसमें कौन से डाटा की क्लास के बाहर एक्सेस होनी चाहिए कौन से डेटा की लॉजिकली क्लास के बाहर एक्सेस नहीं होनी चाहिए हम कुछ डाटा मेंबर्स को प्राइवेट बनाते हैं कुछ को हम प्रोटेक्टेड बना रहे होते हैं अब जनरली जो भी हमारे प्रोटेक्टेड डाटा होते हैं कभी-कभी अगर हमें उनकी एक्सेस भी देनी होती है मेन फंक्शन को या किसी दूसरी क्लास को तो हम डायरेक्टली एक्सेस नहीं देते जैसे फॉर एग्जांपल मेन में अगर मुझे फिर भी अपने टीचर की सैलरी को सेट करना है या सैलरी को प्रिंट करवाना है तो उसके लिए हम कुछ स्पेशल फंक्शंस बना सकते हैं और उन फंक्शंस को हम पब्लिक रख सकते हैं फॉर एग्जांपल मैंने एक फंक्शन बना दिया वॉइड सेट सैलरी सेट सैलरी का मतलब है कि सैलरी की वैल्यू को सेट कर दो तो हम यहां पे इंट कोई सैलरी की वैल्यू s ले लेंगे और जो हमारी सैलरी है यहां पे सैलरी वेरिएबल कौन सा है यह वाला वेरिएबल है दिस विल बी अ डबल वैल्यू तो सैलरी के अंदर हम असाइन कर देंगे यह s वाली वैल्यू तो उससे क्या हुआ इस फंक्शन से हम सैलरी की वैल्यू सेट कर पाएंगे और एक और फंक्शन बना लेते हैं डबल गेट सैलरी गेट सैलरी फंक्शन क्या करेगा रिटर्न कर देगा हमारी सैलरी की वैल्यू को अब यहां पे हमारा सवाल आ सकता है कि अब तो हमें एक्सेस मिल ही गई इवन दो हमने सैलरी को प्राइवेट बनाया पर फिर भी इन फंक्शन से हमें एक्सेस मिल गई सैलरी की तो यह वाली एक्सेस फिर भी कई सारे केसेस में चल जाती है और ये जो स्पेशल फंक्शंस होते हैं इस फंक्शन को इसका एक टेक्निकल नाम होता है इसको हम सेटर कहते हैं और यह वाला जो फंक्शन होता है इसे हम गेटर फंक्शन कहते हैं सेटर फंक्शन का काम होता है प्राइवेट वैल्यूज को सेट करना और गेटर फंक्शन को जनरली हम प्राइवेट वैल्यूज की वैल्यू गेट करने के लिए यूज़ करते हैं सैलरी को हम डायरेक्टली नहीं एक्सेस कर पा रहे पर हां इनडायरेक्टली इन पब्लिक फंक्शंस के थ्रू एक्सेस कर पाएंगे अब हम चाहें तो वैल्यू सेट कर सकते हैं दोबारा से अपनी सैलरी की तो t1 सेट सैलरी के अंदर हम दोबारा से 25000 अपनी वैल्यू पास कर देंगे और यहां पर इस बार हम सी आउट करवा सकते हैं t1 गेट सैलरी तो हमारे पास वैल्यू भी रिटर्न होकर आ जाएगी तो इस तरीके से हमारी जो पूरी इंफॉर्मेशन है उसे हम चाहें तो प्रिंट करा सकते हैं अब नेक्स्ट हम बात करने वाले हैं उप्स के अंदर एक और इंपॉर्टेंट टर्म के बारे में जिसको हम कहते हैं एनकैप्सूलेशन उप्स जो सब्जेक्ट है ना वैसे तो उप्स आपको बहुत इजी लगेगा एज कंपेयर टू c+ डीएसए उप्स का काफी इजी कांसेप्ट होता है बस इसमें थ्योरी ही थ्योरी है थोड़ी सी ज्यादा डिफिकल्ट कुछ नहीं है समझने के लिए पर ऊप्स के अंदर डिफिकल्ट एक छोटी सी चीज है जो है चीजों के नाम मतलब बहुत आसान होता है एनकैप्सूलेशन का नाम मुश्किल रख दिया इन्होंने बस यही डिफरेंस है ऊप्स के चार मेजर पिलर्स होते हैं चार मेजर पिलर्स मतलब ऊप्स का जो हमारा ये पूरा वन शॉट है इसके अंदर चार मेजर टॉपिक्स हैं जो आपसे इंटरव्यूज के अंदर पूछे जाते हैं इनमें से पहला होता है कि एनकैप्सूलेशन बताओ कि क्या होता है एनकैप्सूलेशन बताओ एनकैप्सूलेशन की डेफिनेशन बताओ दूसरा होता है एब्स्ट्रेक्शन तीसरा होता है इन्हेरिटेंस और चौथा होता है पॉलीमोर्फस ज्म इन चारों शब्दों को हम ऊप्स के पिलर्स कहते हैं और इन चारों की डेफिनेशंस आपको बाय हार्ट याद होनी चाहिए क्योंकि आपके इंटरव्यूज में तो पूछी जाएगी कई बार कंप्यूटर साइंस के स्टूडेंट्स के जितने भी कॉलेज एग्जाम्स होते हैं उनमें भी ऊप्स में आ जाती है और इनकी डेफिनेशन बहुत आसान है और उसको हम बहुत सारे एग्जांपल्स के थ्रू करेंगे तो इनमें से सबसे पहले पिलर को अब हम डिस्कस करने वाले हैं व्हिच इज कॉल्ड एनकैप्सूलेशन मुझे एनकैप्सूलेशन में हमेशा एक कैप्सूल शब्द सुनाई देता है जब भी मैं एनकैप्सूलेशन सुनती हूं तो इसका मतलब भी वैसा ही है बेसिकली एनकैप्सूलेशन का मतलब होता है कि आपने कुछ डाटा लिया डेटा मतलब आपने कुछ प्रॉपर्टीज ली और आपने कुछ मेंबर फंक्शंस लिए मेंबर फंक्शंस लिए नॉर्मल फंक्शंस लिए और उन सबका आपने क्या किया जोड़ के कैप्सूल बना दिया मतलब इन दोनों चीजों का हमने जोड़ के क्या किया एक कैप्सूल बना दिया तो यह हो गया एनकैप्सूलेशन और ये जो कैप्सूल होता है इसको हम कह देते हैं अपनी क्लास तो एनकैप्सूलेशन इज नथिंग हमने कुछ डटा लिया मतलब कुछ प्रॉपर्टीज ली और कुछ मेथड्स लिए मतलब कुछ मेंबर फंक्शन लिए और उनको जोड़ के सबको क्लास के अंदर लिख दिया यही होता है एनकैप्सूलेशन तो एनकैप्सूलेशन को हम ऑलरेडी कर चुके हैं ये जो टीचर क्लास हमने बनाई इस टीचर क्लास के अंदर हमने कुछ प्रॉपर्टीज लिखी कुछ डाटा लिखा और कुछ फंक्शंस लिखे तो यह क्या किया हमने यह हमने एनकैप्सूलेशन को इंप्लीमेंट किया तो एक क्लास बनाना और उसके अंदर मेंबर फंक्शंस को और अपने डाटा मेंबर्स को डिक्लेयर करना ही एनकैप्सूलेशन होता है तो बस इसकी डेफिनेशन याद कर लेनी है एनकैप्सूलेशन इज रैपिंग अप ऑफ डाटा एंड मेंबर फंक्शंस इन अ सिंगल यूनिट यह जो कैप्सूल है यह एक सिंगल यूनिट है जिसको हम क्लास कह देते हैं तो यह हो गया एनकैप्सूलेशन अब जो हमारे एनकैप्सूलेशन का कांसेप्ट होता है यह हमें डाटा हाइडिल करता है डेटा हाइडिल का क्या मतलब है डेटा हाइडिल का मतलब होता है इंपॉर्टेंट जो इंफॉर्मेशन है जो सेंसिटिव इंफॉर्मेशन है उसको हाइड कर लेना और एनकैप्सूलेशन का कांसेप्ट डेटा हाइडिल करता है बेसिकली जो भी आपकी सेंसिटिव इंफॉर्मेशन है उसके लिए आप प्राइवेट एक्सेस मॉडिफिकेशन को आप प्राइवेट बना दोगे तो क्लास के बाहर हमारी जो भी सेंसिटिव इंफॉर्मेशन होगी उसकी एक्सेस बाहर नहीं होगी तो किसी को भी उसका पता नहीं चलेगा जैसे फॉर एग्जांपल हम c+ में एक बैंक का सिस्टम डिज़ाइन करते हैं तो उनके लिए हम एक क्लास बना सकते हैं लेट्स क्रिएट अ क्लास कॉल्ड अकाउंट अब इस अकाउंट क्लास के बहुत सारी डिफरेंट डिफरेंट वैल्यूज होंगी बहुत सारा डिफरेंट डाटा होगा जैसे फॉर एग्जांपल एक तो हमारी अकाउंट आईडी हो जाएगी उसके अलावा हमारे अकाउंट में कोई यूजर नेम हमने दिया होगा अपने यूजर को तो व यूजर नेम आ जाएगा हमारे अकाउंट का साथ के साथ फ्लोटिंग या डबल का हम अपना बैलेंस शो कर सकते हैं कि हमारे अकाउंट में अभी कितना बैलेंस है अब लेट्स सपोज किसी बैंक सिस्टम के लिए ये जो बैलेंस वाली इंफॉर्मेशन है दिस इज वेरी सेंसिटिव आप किसी को अकाउंट आईडी दिखा दो आप किसी को यूजर नेम दिखा दो पर आप बैलेंस नहीं दिखा सकते या फिर अगर इसमें एक और स्ट्रिंग होती पासवर्ड की तो ये किसी भी यूजर का पासवर्ड भी बहुत ज्यादा सेंसिटिव इंफॉर्मेशन हो जाता इसको हम नहीं चाहते कि क्लास के बाहर इसकी एक्सेस किसी के पास हो क्लास के बाहर एक्सेस ना होने का मतलब है क्योंकि अभी तो हम सिंगल फाइल में चीजों को यूज़ कर रहे हैं पर जब भी आप कंपनी के अंदर जाएंगे जब भी हम किसी बड़े से बैंकिंग सिस्टम के ऊपर काम करेंगे तो वहां पे तो बहुत सारी डिफरेंट डिफरेंट c+ प् की फाइल्स हो सकती हैं और हर c+ प की फाइल के अंदर एक डिफरेंट नई क्लास बन रही है नया कुछ बन रहा है और वो दूसरी फाइल से डाटा इंपोर्ट कर रहा है तो वहां पे हम नहीं चाहते दूसरी फाइल्स के पास हमारी पासवर्ड की या हमारे बैलेंस की इंफॉर्मेशन हो तो इन दोनों डाटा मेंबर्स को उठा के अगर हमने यहां पर प्राइवेट बना दिया इस तरीके से तो यह क्या हो गया यह हमने बेसिकली इंप्लीमेंट किया है डाटा हाइडिल कोड कि जो हमारा सेंसिटिव डाटा था उसको या तो तो प्राइवेट बना दो या उसको प्रोटेक्टेड बना दो तो व डेटा क्या हो जाएगा वह डेटा हाइड हो जाएगा बाकी जो नॉर्मल क्लासेस या बाकी जो नॉर्मल फंक्शंस हैं उन सब से यह वाला डाटा फिर भी पब्लिक है इसको कोई भी एक्सेस कर सकता है इसको कोई भी देख सकता है तो इस तरीके से हम डेटा हाइडिल को भी इंप्लीमेंट करते हैं यूजिंग इन कैप्सन क्लास बनाई तभी तो एक्सेस मोडिफाय असस को यूज कर पाए और एक्सेस मोडिफाय को यूज किया तभी तो डेटा हाइडिल कांसेप्ट होते हैं जो हमसे इंटरव्यूज के अंदर पूछे जाते हैं आपसे पूछ लेंगे एनकैप्सूलेशन क्या होता है एनकैप्सूलेशन का एग्जांपल दीजिए डेटा हाइडिंट हाइडिल का एग्जांपल दीजिए एक्सेस मॉडिफाई करके एक एग्जांपल लिख कर दिखाइए तो इस तरीके के बेसिक सवाल ही पूछे जाते हैं तो नेक्स्ट वी आर गोइंग टू टॉक अबाउट अ स्पेशल फंक्शन कॉल्ड कंस्ट्रक्टर जब भी हम क्लासेस एंड ऑब्जेक्ट्स की बात करते हैं कंस्ट्रक्टर एक काफी इंपॉर्टेंट कांसेप्ट होता है वैसे तो बहुत इजी कांसेप्ट है कंस्ट्रक्टर क्या होता है एक स्पेशल मेथड होता है स्पेशल मेथड मतलब यह एक बहुत स्पेशल फंक्शन है जो ऑटोमेटिक इवोक हो जाता है ऑटोमेटिक इसको कॉल कर देता है c+ प जब भी हम किसी नई ऑब्जेक्ट को क्रिएट करते हैं फॉर एग्जांपल अपने कोड के अंदर आते हैं अपने कोड के अंदर हमने अपनी एक टीचर ऑब्जेक्ट बनाई है कहां पर बनाई है यह हमारी टीचर क्लास है लेट अस मिनिमाइज दिस यह हमारी टीचर क्लास है और इस टीचर क्लास के लिए हमने यहां पे अपनी एक टीचर ऑब्जेक्ट बनाई है जैसे ही यहां पे हमने ऑब्जेक्ट क्रिएशन वाली लाइन लिखी वैसे ही ऑटोमेटिक इंटरनली क्या हो रहा है कंस्ट्रक्टर को कॉल जा रही है वो कॉल हमें नहीं दिखता कैसे जा रही है कैसे नहीं जा रही पर कंपाइलर क्या करता है ऑटोमेटिक कंस्ट्रक्टर को कॉल कर देता है जब भी हम किसी भी नई ऑब्जेक्ट को क्रिएट करते हैं अब ये जो कंस्ट्रक्टर होता है कंस्ट्रक्टर एगजैक्टली क्या होता है कंस्ट्रक्टर एक ऐसा स्पेशल फंक्शन होता है जिसका काम होता है ऑब्जेक्ट्स को इनिश इज करना कहने का मतलब यह है कि जब भी हम कोई क्लास बनाते हैं क्लास तो क्या है क्लास तो एक ब्लूप्रिंट है कि हमारी ऑब्जेक्ट के अंदर क्या मेंबर फंक्शन होने चाहिए क्या उसके अंदर डाटा होना चाहिए किस तरीके से एक ऑब्जेक्ट को क्रिएट होना चाहिए क्लास उसका ब्लूप्रिंट बनाती है क्लास मेमोरी के अंदर कोई खास स्पेस ऑक्यूपाइड से कोई ऑब्जेक्ट बनानी पड़ती है लेट्स सपोज ये हमारी ऑब्जेक्ट वन हो गई यह हमारी ऑब्जेक्ट टू हो गई यह हमारी ऑब्जेक्ट थ्री हो गई तो यह जो इंडिविजुअल ऑब्जेक्ट्स होती हैं यह मेमोरी के अंदर जगह घरती है यह मेमोरी के अंदर जगह ऑक्यूपाइड केट होती है मेमोरी एलोकेट होना मतलब मेमोरी के अंदर इनके जो भी डेटा मेंबर्स हैं उनके लिए स्पेस एलोकेट होना कंप्यूटर की मेमोरी के अंदर साथ के साथ वो जो डेटा मेंबर्स हैं उनको अगर आप किन्हीं वैल्यूज के साथ इनिश इइ करना चाहते हैं तो वहां पर हम क्या करते हैं वहां पर हम कंस्ट्रक्टर्स का यूज़ करते हैं और अगर हम खुद कंस्ट्रक्टर नहीं बनाते तो c+ प ऑटोमेटिक हमारे लिए कंस्ट्रक्टर बना देता है जैसे अभी टीचर क्लास के अंदर हमने कोई स्पेशल फंक्शन कंस्ट्रक्टर नहीं बनाया हुआ तो यहां पर इस ऑब्जेक्ट के लिए कंस्ट्रक्टर कैसे कॉल हो रहा है क्योंकि कंपाइलर ने ऑटोमेटिक कंस्ट्रक्टर बना लिया तो या तो प्रोग्रामर कंस्ट्रक्टर बनाता है या कंपाइलर कंस्ट्रक्टर बनाता है तो इसीलिए एज अ प्रोग्रामर हमें खुद के कंस्ट्रक्टर भी बनाने आने चाहिए अभी कंस्ट्रक्टर की कुछ बेसिक प्रॉपर्टीज होती हैं पहले उनको समझते हैं और फिर जानते हैं कि ये इनिश इइ जेशन का एगजैक्टली मतलब क्या है कंस्ट्रक्टर एक ऐसा फंक्शन होता है जिसका नाम सेम होता है एज द क्लास और कंस्ट्रक्टर्स का कोई रिटर्न टाइप नहीं होता मतलब अगर अपनी टीचर क्लास के लिए हम एक कंस्ट्रक्टर क्रिएट करना है तो हम यहां पे आके एक फंक्शन बना देंगे इस फंक्शन का नाम भी टीचर होगा पर यह क्या है ये क्लास नहीं है ये एक फंक्शन है और इस फंक्शन का कोई रिटर्न टाइप नहीं है रिटर्न टाइप वॉइड भी नहीं है स्ट्रिंग भी नहीं है इंट भी नहीं है बूल भी नहीं है फ्लोट भी नहीं है कुछ भी नहीं है बस ये एक फंक्शन बन गया और इस तरीके से इस फंक्शन के अंदर हम सी आउट करा सकते हैं हाई आई एम कंस्ट्रक्टर इस तरीके से हम ये सिंपल सी प्यारी सी स्टेटमेंट सी आउट करा देंगे और ये हमने क्या बना दिया ये हमने एक कंस्ट्रक्टर बना दिया तो इस बार जब हम अपनी टीचर t1 ऑब्जेक्ट को क्रिएट करेंगे तो जब यह लाइन एग्जीक्यूट होगी तो इस बार हमने अपना कंस्ट्रक्टर लिखा हुआ है तो कंपाइलर वाला डिफॉल्ट कंस्ट्रक्टर नहीं बनेगा तो जैसे ही हम ऑब्जेक्ट को क्रिएट करेंगे हमारा यह वाला कंस्ट्रक्टर फंक्शन कॉल हो जाएगा तो लेट अस रन आर कोड तो सबसे पहले यह लाइन प्रिंट होके आएगी हाय आई एम कंस्ट्रक्टर जो दिखाती है कि सबसे पहले मेन के अंदर यह लाइन अगर रन हुई थी तो कंस्ट्रक्टर वाली ही लाइन प्रिंट होगी अगर हम एक और ऑब्जेक्ट यहां बना देते टीचर t2 तो दो बार लाइन प्रिंट होती हाय आई एम कंस्ट्रक्टर हाय आई एम कंस्ट्रक्टर क्योंकि पहली बार ऑब्जेक्ट के लिए कंस्ट्रक्टर कॉल हो रहा है फिर दोबारा कॉल हो रहा है तो बह बार वो इस सेम लाइन को प्रिंट करवाएगा अब कंस्ट्रक्टर के अंदर इनिश इजेशन करने का क्या मतलब होता है इनिश इजेशन करने का मतलब होता है कि कुछ डाटा मेंबर्स के लिए आप वैल्यू पहले ही असाइन कर दो जैसे फॉर एग्जांपल हम चाहते हैं हमारे जो सारे टीचर्स हैं उन सबके लिए डिपार्टमेंट पहले ही सेट हो जाए कि यह सारे के सारे टीचर्स कंप्यूटर साइंस डिपार्टमेंट के हैं तो डिपार्टमेंट की वैल्यू कंप्यूटर साइंस हो जाए हर एक टीचर के लिए तो उस वैल्यू को बार-बार हमें जाकर सेट नहीं करना पड़ेगा वो ऑटोमेटिक जैसे ही ऑब्जेक्ट क्रिएट होगी वैसे ही डिपार्टमेंट कंप्यूटर साइंस हो जाएगा तो अगर हम यहां पर आते हैं मेन फंक्शन के अंदर तो यहां हम t1 डिपार्टमेंट = ट कंप्यूटर साइंस नहीं लिखेंगे और फिर भी हम क्या करेंगे फिर भी हम सी आउट करवाएंगे t1 डॉ डिपार्टमेंट को और फिर देखते हैं हमारे पास कौन सी वैल्यू आएगी तो अभी कॉल के अंदर हमने टीचर t1 को क्रिएट किया उसके बाद उसके अंदर हमने कुछ वैल्यूज असाइन की पर डिपार्टमेंट असाइन नहीं किया पर कंस्ट्रक्टर ने क्या किया होगा कंस्ट्रक्टर ने ऑटोमेटिक डिपार्टमेंट कंप्यूटर साइंस कर दिया होगा तो जब हम t1 डिपार्टमेंट को प्रिंट करवाएंगे तो हमारे पास आउटपुट में कंप्यूटर साइंस प्रिंट होकर आ जाएगा तो ये क्या किया हमने डिपार्टमेंट की वैल्यू को इनिश इज कर दिया इन आवर कंस्ट्रक्टर अब जो कंस्ट्रक्टर फंक्शन होता है ऐसा नहीं है इस कंस्ट्रक्टर फंक्शन को हम अलग से कभी भी कॉल कर सकते हैं कंस्ट्रक्टर फंक्शन एक ही बार कॉल होता है जब हमारी ऑब्जेक्ट क्रिएट होती है एट द टाइम ऑफ ऑब्जेक्ट क्रिएशन तो कंस्ट्रक्टर इज ओनली कॉल्ड वंस एट ऑब्जेक्ट क्रिएशन और कंस्ट्रक्टर को कॉल करने का हमें एक्स्ट्रा काम नहीं करना पड़ता कंस्ट्रक्टर को ऑटोमेटिक कॉल चले जाती है अब इसके साथ में जनरली हमारी जो क्लासेस होती हैं कंस्ट्रक्टर को हम हमेशा पब्लिक डिक्लेयर करते हैं कभी भी कंस्ट्रक्टर को हमें प्राइवेट की तरह नहीं बनाना क्योंकि कंस्ट्रक्टर को मेन फंक्शन से कॉल जा रही होती है इंटरनली ऑटोमेटिक तो मेन फंक्शन के पास प्राइवेट मेंबर्स की एक्सेस नहीं होगी इसीलिए कंस्ट्रक्टर को हम हमेशा पब्लिक की तरह ही डिक्लेयर करते हैं तो ये तीन प्रॉपर्टीज तो हमने देख ली इसके साथ-साथ मेमोरी एलोकेशन हैपेंस व्हेन कंस्ट्रक्टर इज कॉल्ड इसका क्या मतलब है फॉर एग्जांपल हमने एक क्लास बनाई सिंपल सी हमने एक क्लास बनाई लेट्स कॉल इट a a क्लास के अंदर हमने एक इंटी जर x बनाया तो इस तरीके से हमने इंटी जर x कर दिया अब हम a क्लास की ऑब्जेक्ट बनाते हैं यह a क्लास की ऑब्जेक्ट वन है यह a क्लास की ऑब्जेक्ट टू है तो जब हम यह वाली क्लास बना रहे हैं तो मेमोरी के अंदर एज सच कोई स्पेस ऑक्यूपाइड कब होगी स्पेस ऑक्यूपाइड तब होगा जब हम एक ऑब्जेक्ट क्रिएट करेंगे तो जैसे ही यह ऑब्जेक्ट वन क्रिएट होती है तो लेट्स सपोज यह हमारे कंप्यूटर की मेमोरी है तो कंप्यूटर की मेमोरी के अंदर ऑब्जेक्ट वन को कुछ जगह दी जाती है और उसी के अंदर उसके सारे वेरिएबल जाके स्टोर होते हैं मतलब अब ऑब्जेक्ट वन के लिए हमारे पास क्या होगा हमारे पास x यह वाला वेरिएबल होगा तो इस वेरिएबल x के लिए यहां पे जगह एलोकेट होगी जब हम ऑब्जेक्ट टू को क्रिएट करेंगे तो ऑब्जेक्ट टू को मेमोरी के अंदर जगह मिलेगी और ऑब्जेक्ट टू का जो x होगा उसके लिए यहां पे स्पेस एलोकेट होगी फ्यूचर में कोई और ऑब्जेक्ट्स क्रिएट होती है ए क्लास की तो उनके लिए अलग से स्पेस एलोकेट होगी और इस तरीके से जो मेमरी एलोकेशन होता है वो ऑब्जेक्ट्स के लिए होता है वो क्लासेस के लिए नहीं होता और वो कब होता है वो तब होता है जब हमारे कंस्ट्रक्टर को कॉल जाती है चाहे वह कंपाइलर वाला कंस्ट्रक्टर हो चाहे वह हमारा कंस्ट्रक्टर हो तो ऑब्जेक्ट्स को जो मेमोरी एलोकेट करने का काम होता है यह इंटरनली हमारे कंस्ट्रक्टर का होता है अब जब भी हम कंस्ट्रक्टर्स को पढ़ते हैं देयर आर थ्री टाइप्स ऑफ कंस्ट्रक्टर्स दैट वी स्टडी इन सी प् एक होते हैं हमारे नॉन पैरामीटराइज्ड कंस्ट्रक्टर्स नॉन पैरामीटराइज्ड कंस्ट्रक्टर वैसे तो कॉम्प्लेक्शन नहीं है जैसे एक फंक्शन के कोई पैरामीटर्स नहीं होते अब इस कंस्ट्रक्टर को अगर हम देखें तो दिस कंस्ट्रक्टर इज अ नॉन पैरामीटराइज्ड कंस्ट्रक्टर क्योंकि इसके अंदर कोई भी पैरामीटर्स नहीं है पेंसिस के अंदर दूसरा हमारा कंस्ट्रक्टर का टाइप होता है हमारा पैरामीटराइज कंस्ट्रक्टर जिसके अंदर कुछ पैरामीटर्स होते हैं और तीसरा हमारा कंस्ट्रक्टर जिसको हम पढ़ते हैं वो होता है हमारा कॉपी कंस्ट्रक्टर अब सबसे पहले पैरामीटराइज कंस्ट्रक्टर की बात करते हैं नॉन पैरामीटराइज तो देख लिया हमने अगर ऐसा ही हम एक और कंस्ट्रक्टर बनाएं और उसके अंदर हम कुछ पैरामीटर्स डिफाइन करते जैसे फॉर एग्जांपल अभी तो हमने डिपार्टमेंट कंप्यूटर साइंस किया है पर हम क्या करेंगे जैसे ही ऑब्जेक्ट बनेगा अलग से इन वैल्यूज को असाइन करने की जगह ना इसी एक ही लाइन में सारी वैल्यूज ले लेंगे यानी यहां पर हमें एक पैरामीटर ले लेंगे स्ट्रिंग n जो हमारे नेम के लिए शॉर्ट हो जाएगा एक पैरामीटर ले लेंगे स्ट्रिंग डी जो हमारे डिपार्टमेंट के लिए शॉर्ट हो जाएगा एक पैरामीटर ले लेंगे स्ट्रिंग्स s जो हमारे सब्जेक्ट के लिए शॉर्ट हो जाएगा एंड एक पैरामीटर ले लेंगे डबल सैलरी जो हमारी सैलरी के लिए शॉर्ट हो जाएगा तो हम यहां पर जो भी हमारा नेम है उसे n की वैल्यू असाइन कर सकते हैं जो भी हमारा डिपार्टमेंट है उसे d की वैल्यू असाइन कर सकते हैं जो भी हमारा सब्जेक्ट है उसे s वैल्यू असाइन कर सकते हैं एंड वी कैन असाइन सैलरी वाली वैल्यू यूजिंग दिस सैल वेरिएबल तो इस कंस्ट्रक्टर के अंदर क्या हुआ इस कंस्ट्रक्टर के अंदर चार पैरामीटर्स आ गए और यहां पे हम ऑब्जेक्ट का वही इनिश इजेशन कर रहे हैं दोबारा तो ये एक अलग कंस्ट्रक्टर है और यह एक अलग कंस्ट्रक्टर है इसे एक बार के लिए कॉमेंट आउट कर देते हैं और इस बार जब हम अपनी ऑब्जेक्ट को क्रिएट करेंगे तो इस तरीके से अलग से सारी वैल्यूज नहीं देंगे इस बार हम क्या करेंगे हम t1 को क्रिएट करेंगे और यहीं पैरेंस लगा के हम अपनी सारी वैल्यूज पास करेंगे t1 का जो कंस्ट्रक्टर है वह सबसे पहले कौन सी वैल्यू लेता है सबसे पहले उसके पास तीन स्ट्रिंग्स जानी चाहिए नेम डिपार्टमेंट और सब्जेक्ट की तो नेम में हम श्रद्धा सेंड करेंगे डिपार्टमेंट में लेट्स सेंड कंप्यूटर साइंस सब्जेक्ट के अंदर हम c+ प् सेंड करेंगे और सैलरी के अंदर हम अपनी वैल्यू को सेंड करेंगे तो इस तरीके से सिंगल लाइन के अंदर ही सारी वैल्यूज हम कंस्ट्रक्टर के अंदर पास कर सकते हैं एक पैरामीटराइज कंस्ट्रक्टर के अंदर और वो वैल्यू य इनिशियलिज्म दिस फंक्शन वॉइड गेट इंफो गेट इंफो क्या करेगा गेट इंफो सी आउट करा देगा हमारी टीचर की सारी इंफॉर्मेशन तो टीचर का जो नेम है या अभी के लिए नेम इनपुट कराते हैं एंड अपना सब्जेक्ट इनपुट कराते हैं तो सब्जेक्ट हो गया एंड दिस विल बी इक्वल टू सब्जेक्ट तो हम अपने टीचर के लिए क्या करेंगे वैल्यूज असाइन कर दी और t1 गट इंफो को हम कॉल लगा देंगे तो हमने कुछ नहीं एक पैरामीटराइज कंस्ट्रक्टर डिक्लेयर किया जिसके अंदर कुछ वैल्यूज आएंगी वो वैल्यूज ऑब्जेक्ट को असाइन हो जाएंगी और फिर हम उन वैल्यूज को प्रिंट करवा देंगे लेट्स क्लियर दिस एंड रन आवर कोड तो वो वैल्यूज हमारे लिए असाइन हो गई और हमारे लिए अपने नेम एंड सब्जेक्ट की वैल्यू प्रिंट हो गई तो इस तरीके से हम नॉन पैरामीटराइज कंस्ट्रक्टर्स को भी क्रिएट कर सकते हैं अब एक क्लास के अंदर मल्टीपल कंस्ट्रक्टर्स भी हो सकते हैं गिवन कि उन कंस्ट्रक्टर्स के पैरामीटर्स डिफरेंट हो मतलब टीचर और टीचर यह दोनों सेम नाम के इंस्ट्रक्टर्स एक ही क्लास के अंदर हो सकते हैं बस इनके पैरामीटर्स अलग होने चाहिए जैसे फॉर एग्जांपल यहां पे एक भी पैरामीटर नहीं है यहां पे चार पैरामीटर है हम एक और बना सकते हैं जिसमें तीन पैरामीटर्स हो एक और बना सकते हैं जिसमें पैरामीटर्स के टाइप डिफरेंट हो तो इस तरीके के दो कंस्ट्रक्टर्स को जब हम एक साथ क्लास के अंदर क्रिएट करते हैं तो हमारे पास कोई एरर नहीं आएगा ऑटोमेटिक हमारे लिए डिटेक्ट हो जाएगा कि हमने यहां पे चार वैल्यूज भेजी हैं और उन वैल्यूज के टाइप हमें पता है तो हमें पता है ऑटोमेटिक यही कंस्ट्रक्टर कॉल होगा ये वाला तो कॉल होगा नहीं ये जो फिनोमिना होता है जिसमें मल्टीपल कंस्ट्रक्टर्स हमारे पास हो सकते हैं उनका नाम सेम हो सकता है बस उनके टाइप जो डिफरेंट होते हैं इस फिनोमिना को या इस कांसेप्ट को हम प्रोग्रामिंग के अंदर कहते हैं कंस्ट्रक्टर ओवरलोडिंग एंड कंस्ट्रक्टर ओवरलोडिंग इज एन एग्जांपल ऑफ पॉलीमोर्फस ज्म पॉलीमोर्फस ज्म को हम बाद में जाके डिटेल में स्टडी करेंगे पर पॉलीमोर्फस ज्म का ही एक एग्जांपल कंस्ट्रक्टर ओवरलोडिंग होता है तो हमारी क्लासेस के अंदर कई जगह हमें कंस्ट्रक्टर ओवरलोडिंग देखने को मिलती है तो यहां यहां तक हमने नॉन पैरामीटराइज्ड कंस्ट्रक्टर को पढ़ लिया है पैरामीटराइज्ड कंस्ट्रक्टर को पढ़ लिया है अब कॉपी कंस्ट्रक्टर के बारे में बात करने से पहले हम एक और स्पेशल कांसेप्ट के बारे में बात करने वाले हैं व्हिच इज आर दिस पॉइंटर तो c+ प् के अंदर दिस एक स्पेशल पॉइंटर होता है दैट पॉइंट्स टू द करंट ऑब्जेक्ट फॉर एग्जांपल हम अपनी किसी ऑब्जेक्ट वन के लिए उसके किसी फंक्शन को कॉल कर रहे हैं अब इस फंक्शन को अगर इस ऑब्जेक्ट की प्रॉपर्टीज को रेफर करना है तो या तो ये जो फंक्शन है ये उन प्रॉपर्टीज को एक्सेस कर सकता है बाय राइटिंग प्रॉपर्टी तो यहां पे हमें ऑलरेडी पता होगा कि यह जो प्रॉपर्टी है यह हमारी इस ऑब्जेक्ट की प्रॉपर्टी है या फिर इसी चीज को लिखने का एक और दूसरा तरीका होता है कि हम लिखते हैं दिस और फिर हम लगाते हैं एरो वाला सिंबल एरो वाला सिंबल कैसे हम लिखते हैं हाइफ यानी डैश और उसके बाद ग्रेटर देन वाला साइन एंड फिर हम लिखते हैं दिस प्रॉपर्टी दिस प्रॉपर्टी कहकर भी हम यह कह रहे हैं कि हमारी इस वाली ऑब्जेक्ट की प्रॉपर्टीज की हम बात कर रहे हैं अब दिस पॉइंटर की जरूरत क्यों पड़ी उसका एक एग्जांपल देखते हैं जैसे फॉर एग्जांपल य यहां पर हमने अपने टीचर वाला पैरामीटराइज कंस्ट्रक्टर बनाया हुआ है अब इस पैरामीटराइज कंस्ट्रक्टर के अंदर हम नहीं चाहते कि हमारे यह जो पैरामीटर्स के नाम है ये इस तरीके से हम शॉर्ट में रखें हम चाहते हैं कि यहां पे इस स्ट्रिंग को भी हम कंप्लीट नेम नाम दें इस स्ट्रिंग को हम डिपार्टमेंट नाम दें इस स्ट्रिंग को हम पूरा सब्जेक्ट नाम दें वेरिएबल को हम पूरी सैलरी नाम दें तो यहां पे बेसिकली हमें लिखना पड़ेगा नेम इज इक्वल टू नेम ये लेफ्ट वाला नेम किसका नेम है ये लेफ्ट वाला नेम हमारी क्लास का नेम है इनफैक्ट ये जो सारी प्रॉपर्टीज हैं इन सब प्रॉपर्टीज को हम चाहे तो टॉप में लिख सकते हैं तो यहां पर जब हम लेफ्ट में नेम लिख रहे हैं लेफ्ट में नेम लिखने का मतलब है कि हम ऑब्जेक्ट के नेम की ऑब्जेक्ट की नेम प्रॉपर्टी की बात कर रहे हैं और ये जो राइट वाला नेम है हम चाहते हैं ये हमारा पैरामीटर रहे पर जब हम इस तरीके की स्टेटमेंट लिख देंगे ना तो वो हमारे कंस्ट्रक्टर के लिए कंपाइलर के लिए कंफ्यूज ंग हो जाएगा क्योंकि हमें नहीं समझ में आ रहा कि ऑब्जेक्ट की प्रॉपर्टी कौन सी है तो जब भी हम ऑब्जेक्ट की प्रॉपर्टीज को दिखाना चाहते हैं हम उन्हें दिखा सकते हैं यूजिंग द दिस पॉइंटर तो अगर हमें दिखाना कि ये लेफ्ट वाला नेम हमारे ऑब्जेक्ट का नेम है तो हम उसके लिए लिख सकते हैं दिस हाइन ग्रेटर देन तो यह हमारा एरो का सिंबल हो गया दिस इज द एरो ऑपरेटर एंड इस तरीके से हमारा जो लेफ्ट वाला नेम है अब हमें पता चल जाएगा यह हमारी ऑब्जेक्ट की प्रॉपर्टी है डिपार्टमेंट के लिए भी अगर लेफ्ट में भी डिपार्टमेंट है राइट में भी डिपार्टमेंट है तो हम लेफ्ट में लिख देंगे दिस डिपार्टमेंट यानी ये ऑब्जेक्ट का डिपार्टमेंट है और ये जो राइट में डिपार्टमेंट वाली वैल्यू है यह हमारे फंक्शन का पैरामीटर है यह हमारे कंस्ट्रक्टर का पैरामीटर है लेफ्ट में लिख दिया दिस सब्जेक्ट यह हमारे ऑब्जेक्ट का सब्जेक्ट है और यह जो सब्जेक्ट है यह हमारे कंस्ट्रक्टर का पैरामीटर है लेफ्ट में लिख दिया दिस सैलरी तो ये ऑब्जेक्ट की सैलरी है और राइट में जो सैलरी वैल्यू है यह हमारे कंस्ट्रक्टर का पैरामीटर है तो इस तरीके से हम ऑब्जेक्ट की प्रॉपर्टीज को एक्सेस करने के लिए दिस पॉइंटर को यूज कर सकते हैं अब इसे सेव करेंगे तो हमारे कोड के अंदर एस सच कोई एरर नहीं आएगा क्योंकि ये कंप्लीट सही सिंटेक्स था अब रन करेंगे तो बिल्कुल सेम आउटपुट वी आर गोइंग टू गेट अब दिस पॉइंटर काम एगजैक्टली कैसे करता है c+ प के अंदर अगर कोई भी ऑब्जेक्ट क्रिएट होती है फॉर एग्जांपल हमने किसी क्लास की कोई एक ऑब्जेक्ट क्रिएट की है तो हमारा दिस क्या करता है हमारा दिस एक स्पेशल पॉइंटर होता है अगर ये हमारी ऑब्जेक्ट है और ये इस ऑब्जेक्ट की पूरी की पूरी मेमोरी इसने ऑक्यूपाइड करता है यानी अगर इस मेमोरी का एड्रेस लेट्स सपोज 100 के इक्वल है तो दिस भी अपने आप में एक वेरिएबल होता है जो अंदर 100 स्टोर करता है क्योंकि दिस क्या है एक ऑटोमेटिक क्रिएट होने वाला पॉइंटर है जो हमेशा इस ऑब्जेक्ट को जो भी कॉलिंग ऑब्जेक्ट होती है जो फंक्शन को कॉल कर रही है उस ऑब्जेक्ट को पॉइंट करता है तो हमारे कंस्ट्रक्टर के अंदर कॉलिंग ऑब्जेक्ट कौन सी है कंस्ट्रक्टर के अंदर कॉलिंग ऑब्जेक्ट है यह t1 जिसके लिए कंस्ट्रक्टर कॉल किया जा रहा है इन सारी वैल्यूज के साथ तो दिस के कंसेप्ट को समझने से पहले सबसे पहले तो हमारी बेसिक c+ प के जो पॉइंट्स की नॉलेज है वह थोड़ी सी क्लियर होनी चाहिए तभी इसकी हमें और ज्यादा क्लेरिटी आएगी तो यहां पर अगर आपको c+ प पॉइंट्स अभी तक आपने नहीं पढ़े हैं तो पहले जाकर उनके बेसिक्स हमें पढ़ लेने हैं क्योंकि पॉइंट्स आर रियली रियली इंपॉर्टेंट इन c+ प क्योंकि क्योंकि मेजॉरिटी डेटा स्ट्रक्चर्स पॉइंट्स को यूज़ कर रहे होते हैं कहीं ना कहीं तो जब भी हम एक पॉइंटर डिक्लेयर करते हैं c+ प के अंदर लेट्स सपोज हमने एक इंट स्टार पीटीआर डिक्लेयर किया जो किसी इंटी जर x जिसके अंदर 10 स्टोर था उसका एड्रेस स्टोर करा रहा है तो अगर हमें कभी भी इस x की वैल्यू एक्सेस करनी होती है तो हम या तो x लिख सकते हैं या हम लिख सकते हैं स्टार पीटीआर ये जो स्टार होता है यह c+ प के अंदर हमारा डी रेफरेंसिंग ऑपरेटर होता है स्टार के बहुत सारे काम होते हैं स्टार मल्टीप्लाई के लिए यूज होता है और स्टार डी रेफरेंसिंग ऑपरेटर की तरह भी यूज होता है डी रेफरेंस करने का मतलब होता है पॉइंट्स के अंदर कि पॉइंटर जिस वैल्यू को पॉइंट कर रहा है मतलब पॉइंटर अगर x की वैल्यू 10 को पॉइंट कर रहा है तो स्टार पॉइंटर कहने का मतलब है हम इस 10 की बात कर रहे हैं तो स्टार दिस अगर हम लिख देंगे इफ वी राइट स्टार दिस तो इसका मतलब हम अपनी ऑब्जेक्ट की बात कर रहे हैं और अगर हमें ऑब्जेक्ट डॉट प्रॉपर्टी लिखना है तो हमें लिखना पड़ेगा स्टार दिस डॉट प्रॉपर्टी अब यह जो स्टार डॉट प्रॉपर्टी है इसी को लिखने का एक और आसान तरीका दिया गया है c+ प के अंदर व्हिच इज दिस एरो ऑपरेटर तो एरो ऑपरेटर कोई एस सच नई चीज नहीं है हम पॉइंट्स की ही इस कॉम्प्लेक्शन को यूज़ कर रहे हैं बाकी कांसेप्ट वही यूज़ हो रहा है जो नॉर्मल इंटी जर पॉइंटर कैरेक्टर पॉइंटर के साथ हम यूज़ करते हैं c+ के अंदर तो इट इज नॉट अ वेरी टफ कांसेप्ट ये टफ आपको तब लग सकता है जब हमने पॉइंट्स नहीं पढ़े तो इसीलिए अच्छी इंटरव्यू प्रिपरेशन के लिए इस पूरे लेक्चर को देखने के बाद एक बार पॉइंट्स को हम जाकर थोड़ा सा रिवाइज कर सकते हैं अब नेक्स्ट हम बात करने वाले हैं अपने थर्ड टाइप ऑफ कंस्ट्रक्टर के बारे में व्हिच इज कॉल्ड द कॉपी कंस्ट्रक्टर कॉपी कंस्ट्रक्टर बिल्कुल अपने नाम की तरह काम करता है यानी इसका काम होता है ऑब्जेक्ट्स को कॉपी करना यह एक ऑब्जेक्ट की प्रॉपर्टीज उठाता है और उस ऑब्जेक्ट की दूसरी हमें कॉपी बना के दे देता है एग्जैक्ट तो कॉपी कंस्ट्रक्टर इज अ स्पेशल कंस्ट्रक्टर व्हिच इज यूज्ड टू कॉपी प्रॉपर्टीज ऑफ वन ऑब्जेक्ट इनटू अनदर अब अगर हम खुद से कॉपी कंस्ट्रक्टर नहीं बनाते तो c+ प हमारे लिए एक डिफॉल्ट कॉपी कंस्ट्रक्टर खुद से बना देता है जैसे फॉर एग्जांपल हमने टीचर बनाया t1 इन सारी वैल्यूज के साथ अब लेट्स सपोज हम एक टीचर बनाते हैं t2 और t2 में कंस्ट्रक्टर के पैरामीटर्स में इंस्टेड ऑफ पासिंग ऑल ऑफ दीज वैल्यूज हम क्या पास करेंगे इनफैक्ट अगर आप विजुअल स्टूडियो कोड यूज़ कर रहे हैं वीएस कोड यूज कर रहे हैं तो उस पर आप हर करेंगे तो यहां पे कुछ सजेशंस भी आ जाते हैं जैसे यहां पर एक सजेशन आ रहा है यू कैन पास अ कांस्टेंट टीचर एड्रेस मतलब रेफरेंस हम पास कर सकते हैं किसी और टीचर ऑब्जेक्ट का तो वही सेम चीज हम पास करने वाले हैं यानी हम t1 को पास करने वाले हैं अब यहां पे एज सच हमने ऐसा कोई कंस्ट्रक्टर नहीं लिखा जो किसी दूसरी ऑब्जेक्ट को लेता हुआ एज पैरामीटर पर फिर भी यह कोड चलेगा और t2 के लिए जब हम गेट इंफो करेंगे तो देखते हैं क्या प्रिंट होगा इसको कर देते हैं कॉमेंट आउट यहां पे हमने क्या किया t1 के लिए तो इंफॉर्मेशन लिख खी है t2 में से सिर्फ t1 पास किया है और t2 के लिए गेट इंफॉर्मेशन किया है अब t2 की तो इंफॉर्मेशन हमने कभी डिफाइन ही नहीं की पर फिर भी यह कोड हमारे लिए सही आउटपुट प्रिंट कराएगा व्हिच इज t1 की ही इंफॉर्मेशन तो यहां पे क्या हुआ जब हमने इस तरीके का सिंटेक्स लिखा तो यहां पे हमारे लिए c+ प का डिफॉल्ट कॉपी कंस्ट्रक्टर इवोक हो गया इवोक हो गया या उसे कॉल हो गया कुछ भी कह सकते हैं पर यहां पे बेसिकली डिफॉल्ट कॉपी कंस्ट्रक्टर कॉल हुआ अब कॉपी कंस्ट्रक्टर कैसे कॉपी बनाता है लेट्स सपोज हमने एक ऑब्जेक्ट बनाई t1 लेट्स सपोज दिस इज माय ऑब्जेक्ट t1 अब t1 के अंदर कुछ नेम की वैल्यू हुई होगी जो स्टोर हुई होगी लेट्स सपोज यहां पे श्रद्धा स्टोर हुआ था कुछ सब्जेक्ट की वैल्यू हुई होगी जो स्टोर हुई होगी यहां पे c+ स्टोर हुआ था कुछ हमारे डिपार्टमेंट की वैल्यू हुई थी जो स्टोर हुई हुई थी हमने कंप्यूटर साइंस डिपार्टमेंट रखा था कुछ सैलरी की वैल्यू थी जो स्टोर हुई थी हमने 25 के रखी थी सैलरी अब जैसे ही हम यह एक सिंगल स्टेटमेंट लिखते हैं यानी कॉपी कंस्ट्रक्टर को इवोक करने वाली वैसे ही मेमोरी के अंदर यह पूरी की पूरी जो हमारे पास ऑब्जेक्ट है इसी के जैसी एग्जैक्ट कॉपी हमारे पास बनकर आ जाती है और उसका नाम हो जाता है मेमोरी के अंदर t2 तो इस तरीके से एक कॉपी क्रिएट हो जाती है अब हम चाहे तो खुद का भी कॉपी कंस्ट्रक्टर बना सकते हैं कॉपी कंस्ट्रक्टर बनाने में कुछ नहीं करना बस यहां पर एक थर्ड टाइप ऑफ कंस्ट्रक्टर लेट्स कॉल इट द कॉपी कंस्ट्रक्टर हम बना सकते हैं इसका नाम रख देंगे टीचर और इसके अंदर लेट्स रिमूव दिस नॉन पैरामीटराइज कंस्ट्रक्टर और इस टीचर कंस्ट्रक्टर के अंदर बेसिकली हमारे पास एक टीचर टाइप की ही ऑब्जेक्ट आएगी तो टीचर टाइप की हमारे पास एक ऑब्जेक्ट आएगी और इस ऑब्जेक्ट को हम पास करते हैं बाय रेफरेंस अब पास बाय रेफरेंस का जो मतलब होता है c+ प के अंदर लेट मी आल्सो राइट दिस दिस इज पास बाय रेफरेंस उसका मतलब या तो अगर आपने c+ में कॉल बाय वैल्यू कॉल बाय रेफरेंस पढ़ा था फंक्शंस पढ़ते टाइम तो वहां पर समझ लिया होगा नहीं तो पॉइंट्स के कांसेप्ट में जनरली हम पास बाय रेफरेंस को देख रहे होते हैं वरना पास बाय रेफरेंस का यह मतलब होता है कि यहां पर जिस ऑब्जेक्ट की हम बात कर रहे हैं वो ओरिजिनल ऑब्जेक्ट की कॉपी नहीं है वो ओरिजिनल ऑब्जेक्ट ही है मतलब यहां पर एड्रेस पास होता है पूरी की पूरी ओरिजिनल ऑब्जेक्ट का एक कॉपी क्रिएट नहीं होती तो जो भी चेंजेज इस कंस्ट्रक्टर के अंदर होंगे वो हमारी इस ओरिजिनल ऑब्जेक्ट के अंदर रिफ्लेक्ट करेंगे यह मतलब होता है पर वैसे तो हमें ओरिजिनल ऑब्जेक्ट के अंदर तो कुछ चेंजेज नहीं करने इसे ओरिजिनल ऑब्जेक्ट कह देते हैं यह टीचर की ओरिजिनल ऑब्जेक्ट है और हम क्या करेंगे दिस का नेम इज इक्वल टू ओरिजिनल ऑब्जेक्ट का नेम डॉट नेम दिस का डिपार्टमेंट इज इक्वल टू ओरिजिनल ऑब्जेक्ट का डिपार्टमेंट दिस का सब्जेक्ट इज इक्वल टू ओरिजिनल ऑब्जेक्ट का सब्जेक्ट एंड दिस की सैलरी इज इक्वल टू ओरिजनल ऑब्जेक्ट की सैलरी लेट्स सेव दिस वंस तो अभी तक हमारे पास हमारा डिफॉल्ट कॉपी कंस्ट्रक्टर होता था अब हमने अपना खुद का कस्टम कॉपी कंस्ट्रक्टर बना लिया और यहां पे घुसते ही हम सी आउट करा देंगे आई एम कस्टम कॉपी कंस्ट्रक्टर तो इस तरीके से हम कुछ सी आउट करा सकते हैं ताकि हमें पता चल जाए हमारा कॉपी कंस्ट्रक्टर कॉल हुआ है और इस बार यही सेम स्टेटमेंट हम रन करेंगे तो इस बार डिफॉल्ट कॉपी कंस्ट्रक्टर नहीं इस बार हमारा कस्टम कॉपी कंस्ट्रक्टर कॉल होने वाला है लेट्स सी तो यहां पर क्या कॉल हुआ आई एम कस्टम कॉपी कंस्ट्रक्टर एंड उसके बाद हमारी सारी वैल्यूज जो है वो t2 में जाके कॉपी हो गई तो t2 के लिए जब हमने गेट इंफो कॉल किया तो उसने हमारी इंफॉर्मेशन प्रिंट करवा दी तो बेसिकली जो काम डिफॉल्ट कॉपी कंस्ट्रक्टर करता था वो हमने खुद के कॉपी कंस्ट्रक्टर के अंदर कर दिया अब जब भी ऑब्जेक्ट की कॉपीज बनती है देयर आर बेसिकली टू टाइप्स ऑफ कॉपीज जो क्रिएट हो सकती हैं c+ के अंदर एक कॉप को हम कहते हैं शैलो कॉपी और एक टाइप की कॉपी होती है हमारे पास डीप कॉपी और दोनों में थोड़ा सा डिफरेंस होता है शैलो का मतलब इंग्लिश के अंदर होता है जो कम गहरा हो डीप मतलब जो ज्यादा गहरा हो शैलो का मतलब ऊपर ऊपर से तो बेसिकली इन जनरल जो हमारा डिफॉल्ट कंस्ट्रक्टर होता है जो डिफॉल्ट कंस्ट्रक्टर सी प्लस हमारे लिए बना के देता है या जो हमने भी अभी अपना कॉपी कंस्ट्रक्टर यह वाला कॉपी कंस्ट्रक्टर जो लिखा है यह सारे के सारे क्या करते हैं सारे के सारे शैलो कॉपी बनाते हैं शैलो कॉपी वैसे तो नॉर्मल अगर आपके पास प्रॉपर्टीज हैं तो कोई प्रॉब्लम नहीं आएगी शैलो कॉपी बनाने में मेजॉरिटी केसेस में हम शैलो कॉपी बनाते हैं शैलो कॉपी का मतलब होता है कि ये ऑब्जेक्ट के सारे के सारे मेंबर्स की वैल्यूज एक ऑब्जेक्ट से उठा के दूसरी ऑब्जेक्ट में कॉपी कर देता है फॉर एग्जांपल जैसा हमने इस केस में देखा कि इसने क्या किया नेम श्रद्धा की वैल्यू उठाकर यहां पर रख दी c+ ए की वैल्यू उठाकर यहां पर रख दी सीए की वैल्यू उठाकर यहां पर रख दी एंड इस तरीके से बहुत सारी वैल्यूज इसने उठाकर यहां पर कॉपी कर दी तो यहां पे ये जो कॉपी बन रही है दिस इज बेसिकली अ शैलो कॉपी और नॉर्मल केसेस में शैलो कॉपी ठीक होती है उसमें एस सच कोई इशू नहीं आता इशू शैलो कॉपी के अंदर तब आता है जब हम डायनेमिक मेमोरी एलोकेशन कर रहे होते हैं डायनेमिक मेमोरी एलोकेशन का मतलब है जब हम न्यू कीवर्ड को यूज करके कोई नई मेमोरी एलोकेट कर रहे होते हैं या हम पॉइंट्स को यूज कर रहे होते हैं तब हमारे पास इशू आता है अगर हमें पता हो हमारी जो नॉर्मल मेमोरी एलोकेट होती है मतलब जितने भी हमारे वेरिएबल क्रिएट होते हैं वो जन हमारी स्टैक मेमोरी के अंदर क्रिएट होते हैं दिस इज अ बेसिक c+ प्लस कांसेप्ट आपने जरूर पढ़ा होगा और नहीं भी पढ़ा तो आप पढ़ लेते हैं बेसिकली जितने भी फंक्शंस कॉल किए जाते हैं जैसे अगर यह मेरा मेन फंक्शन है तो मेन फंक्शन के अंदर जितने भी वेरिएबल बनेंगे वो इस स्टैक मेमोरी के अंदर बनेंगे मेन अगर किसी दूसरे फंक्शन फन को कॉल करेगा तो उसके जितने भी वेरिएबल होंगे वो स्टैक मेमोरी के अंदर क्रिएट होंगे पर अगर हम कोई भी नई मेमोरी एलोकेट करते हैं यूजिंग द न्यू कीवर्ड जैसे डायनेमिक मेमोरी एलोकेट c+ में की जाती है इस तरीके से कि हमने न्यू इंट फाइव कर दिया न्यू इंट फाइव कहने का मतलब है कि मुझे पांच इंटी जर के बराबर नई मेमोरी दे दो और यह जो मेमोरी दी जाती है यह डायनेमिक होती है मतलब ये जो मेमोरी है ये रन टाइम पे एलोकेट होती है इंटी जर फंक्शन हो गया फन फंक्शन हो गया जनरली जो फंक्शंस होते हैं उनको स्टैक के ऊपर मेमोरी एलोकेट की जाती है और वो स्टैटिकली एलोकेटेड होती है मतलब कंपाइल टाइम में ही मेमोरी मिल जाती है इसको कहने का मतलब है अगर मेन के अंदर मैंने एक इंटी जर x = 5 डिफाइन किया तो ये जो इंटी जर x है ये मेरे स्टैक के अंदर मेमोरी ले लेगा x = 5 और ये यहां पे क्रिएट होगा और कब क्रिएट होगा कंपाइल टाइम में इसको मेमोरी एलोकेट हो जाएगी पर जो भी न्यू कीवर्ड को यूज़ करके मेमोरी एलोकेट की जाती है जैसे मैंने पांच साइज का एक एरे बना लिया न्यू कीवर्ड को यूज़ करके या मैंने सिंपली अगर न्यू इंट भी लिख दिया तो ये न्यू इंट कहां मिलेगा ये स्टैक पे नहीं मिलेगा बेसिकली मेमोरी का एक स्पेशल एरिया होता है जिसे हम कहते हैं हीप जिसके अंदर ये डायनेमिक मेमोरी एलोकेट होती है और हीप वाली जो मेमोरी है इसी को हम डायनेमिक मेमोरी एलोकेशन कहते हैं मतलब डायनेमिक एलोकेटेड मेमोरी सारी हीप पे होती है तो शैलो कॉपी हमें तब प्रॉब्लम देती है जब हमारे कोड के अंदर जब हमारी क्लास के अंदर जब हमारी ऑब्जेक्ट्स के पास डायनेमिक मेमोरी एलोकेटेड होती है यानी हीप के अंदर उनका कुछ ना कुछ प्रॉपर्टी या प्रॉपर्टी की तरफ कोई पॉइंटर है जो पॉइंट कर रहा है पर उसकी वैल्यूज यहां पे स्टोर्ड हैं तो इस तरीके का जब हमारे पास सिचुएशन होता है तब हमारी शैलो कॉपी हमें प्रॉब्लम देती है और कैसे प्रॉब्लम देती है उसका एक एग्जांपल भी देखते हैं फॉर एग्जांपल लेट्स क्रिएट वन मोर क्लास इस क्लास को हम कहेंगे अपनी स्टूडेंट क्लास लेट्स सपोज हमने अपने स्टूडेंट का डाटा स्टोर करने के लिए स्टूडेंट का डाटा स्टोर करने के लिए स्टूडेंट क्लास को क्रिएट किया तो यह ऊपर से अपनी टीचर क्लास को हटा देते हैं एंड लेट्स टॉक अबाउट दिस स्टूडेंट क्लास एंटायस बहुत सारी प्रॉपर्टीज हो सकती हैं इसको कुछ पब्लिक प्रॉपर्टीज दे देते हैं एक तो स्टूडेंट के पास ओबवियसली अपना नाम होगा और एक लेट्स सपोज इस स्टूडेंट के पास है एक अपना सीजीपीए स्टूडेंट अपना नाम स्टोर कर आता है और अपना सीजीपीए स्टोर कराता है और साथ के साथ देयर इज आल्सो दिस कंस्ट्रक्टर इन स्टूडेंट कंस्ट्रक्टर के अंदर एक तो नेम आता है और एक स्टूडेंट का सीजीपी आता है तो ये हमने कंस्ट्रक्टर बना लिया दिस नेम इज इक्वल टू नेम एंड दिस सीजीपीए इज इक्वल टू सीजीपी इस तरीके से हमने वैल्यूज कर ली और एक और हम फंक्शन बना लेते हैं लेट्स कॉल इट गेट इंफो और गेट इंफो क्या करता है स्टूडेंट के लिए इंफॉर्मेशन प्रिंट करवा देता है सी आउट यहां नेम प्रिंट करवा देगा तो यहां पर हमारे पास नेम प्रिंट हो जाएगा एंड इसी तरीके से हम प्रिंट करवा देंगे अपनी सीजीपीए को तो हमारे पास हमारी सीजीपीए प्रिंट हो जाएगी तो यह हमने प्रॉपर अपनी स्टूडेंट क्लास को क्रिएट कर दिया है अब यहां पर हम स्टूडेंट क्लास के एक ऑब्जेक्ट बनाने वाले हैं इन आवर मेन फंक्शन मेन फंक्शन के अंदर हमने स्टूडेंट s1 की एक ऑब्जेक्ट बनाई लेट्स कॉल द स्टूडेंट राहुल कुमार और लेट्स सपोज राहुल कुमार की सीजीपीए है 8.9 के इक्वल तो हम चाहें तो s1 के लिए गेट इंफो को कॉल कर सकते हैं तो हमारा पूरा डाटा हमारे लिए प्रिंट हो जाएगा आकर बिल्कुल सही डाटा प्रिंट हुआ है कोई इशू नहीं है अब हम क्या चाहते हैं हम चाहते हैं कि राहुल कुमार की तरह ही हमारी क्लास के अंदर एक और ए s2 स्टूडेंट आया उसका नाम भी राहुल कुमार है तो हम डायरेक्टली चाहते हैं कि s1 स्टूडेंट का जो डाटा है वो इस s2 स्टूडेंट के अंदर कॉपी हो जाए तो हम क्या करेंगे यहां पे या तो डिफॉल्ट कॉपी कंस्ट्रक्टर बना लें या फिर नॉर्मल कंस्ट्रक्टर भी बना सकते हैं उससे एज सच कोई इशू नहीं आएगा और उसके बाद हमारा जो स्टूडेंट s2 है इसके लिए हम गेट इंफो को कॉल करेंगे तो इस केस में भी कोई इशू नहीं आएगा सारी की सारी इंफॉर्मेशन जो है वो डायरेक्टली वहां जाकर हमारे पास कॉपी हो जाएगी तो अभी तक स्टूडेंट के लिए हमने कॉपी कंस्ट्रक्टर डिफॉल्ट वाले को इवोक किया उसमें एस सच कोई इशू नहीं आया हम चाहे तो खुद भी अपना वो कॉपी कंस्ट्रक्टर लिख सकते हैं स्टूडेंट के लिए हमने यहां पर स्टूडेंट क्लास का ओरिजिनल ऑब्जेक्ट मंगवाया इसको ऑब्जेक्ट कह देते हैं एंड हमने दिस का नेम इज इक्वल टू ऑब्जेक्ट का नेम एंड दिस का इज इक्वल टू ऑब्जेक्ट का सीजीपीए ये भी कर दिया तो इस बार हमारा कंस्ट्रक्टर कॉल होगा उसमें भी ए सच कोई इशू नहीं आएगा सारी चीजें सेम रहेंगी अब बस हम एक चेंज करने वाले हैं अभी तक जितने भी प्रॉपर्टीज हम यूज कर रहे थे ये सारी की सारी स्टैटिकली एलोकेटेड मेमोरी पे चल रही थी ये सारी की सारी स्टैक में क्रिएट हो रही है इस बार हम हीप का कुछ करेंगे हिप का कुछ करेंगे मतलब हमारा जो स्टूडेंट है स्टूडेंट के लिए इस बार हम क्या करेंगे सीजीपीए की डायरेक्टली वैल्यू स्टोर नहीं करेंगे सीजीपीए का एक पॉइंटर स्टोर कर लेंगे जो सीजीपीए की वैल्यू को पॉइंट करेगा मतलब इस बार यह डबल सीजीपीए नहीं होगा इस बार यह डबल का एक पॉइंटर है जो हमारे सीजीपीए का पॉइंटर है तो इस बार हमने एक पॉइंटर बना लिया और जैसे ही हमारे पास सीजीपीए की वैल्यू आएगी सबसे पहले तो हमें इस पॉइंटर को नई मेमोरी एलोकेट करनी पड़ेगी तो पॉइंटर को नई मेमोरी एलोकेट करने का जो कांसेप्ट है यह भी आपने c+ में पढ़ा होगा पहले पॉइंट्स को पढ़ते टाइम वरना इसको करने का प्रोसेस देख लेते हैं नई मेमोरी एलोकेट करने के लिए हम लिखते हैं सीजीपी पॉइंटर इज इक्वल टू न्यू फ्लोट तो बेसिकली पहले हमारा सीजीपी पॉइंटर क्या था पहले कहीं भी पॉइंट नहीं कर रहा था यसे रैंडम पॉइंटर था मतलब मेमोरी के अंदर इफ वी हैड दिस सीजीपीए पीटीआर तो सीजीपीए पीटीआर पहले कहीं भी पॉइंट नहीं कर रहा था अब हमने क्या किया अब हमने इसे पॉइंट करा दिया एक स्पेशल मेमोरी की तरफ और यह कौन सी मेमोरी फ्लोट टाइप की मेमोरी है कि इसमें फ्लोट टाइप का डाटा स्टोर हो सकता है तो यह न्यू मेमोरी है और यह कहां पे है यह मेमोरी यह मेमोरी है हमारे हीप के अंदर क्योंकि डायनेमिक एलोकेटेड मेमोरी है और अब हमने क्या किया सीजीपीए पॉइंटर जहां पर था जहां पर पॉइंट कर रहा है उसको डी रेफरेंस करके उस जगह हमने स्टोर करा दिया अपनी सीजीपीए को मतलब सीजीपीए पॉइंटर जिस जगह पर पॉइंट कर रहा था जिस मेमोरी एड्रेस पर पॉइंट कर रहा था लेट्स सपोज अगर इसका एड्रेस हो जाता है 100 के इक्वल तो सीजीपीए पॉइंटर क्या एड्रेस स्टोर करा रहा है 100 के इक्वल तो इस 100 वाले एड्रेस पे जाकर अब हमने अपनी 88.9 सीजीपीए जो है वो वहां पे जाके स्टोर कर दी तो इसका यह मतलब है काम वही सेम हो रहा है अभी भी हम इंफॉर्मेशन प्रिंट करवाएंगे एज सच हमारे पास कोई एरर नहीं आएगा बस इस बार सीजीपीए एजिस्ट नहीं करता तो हमें क्या करना पड़ेगा सीजीपीए पॉइंटर से डी रेफरेंस करके हमें सीजीपीए की वैल्यू फाइंड आउट करनी पड़ेगी ये छोटा सा चेंज है जो हमें करना है तो पूरी चीज को एक बार समरा इज कर लेते हैं इस बार डायरेक्टली सीजी की वैल्यू ना स्टोर करा के हमने उसका एक पॉइंटर बना दिया पॉइंटर को पहले तो नई मेमोरी की तरह पॉइंट करवाया उसके बाद उस मेमोरी में जाके सीजीपी की वैल्यू को स्टोर कर दिया ये जो हमारा कॉपी कंस्ट्रक्टर है यहां कुछ नहीं करना बस सीजीपीए पॉइंटर की जगह हम सीजीपीए पॉइंटर कर देंगे तो कोई चेंज नहीं आया और गेट इंफॉर्मेशन में सीजीपीए पॉइंटर कर दिया तो यहां पर न्यू फ्लोट की जगह वी एक्चुअली हैड टू डू न्यू डबल क्योंकि ये डबल को पॉइंट कर रहा है हमारा पॉइंटर तो कुछ नहीं य हमारी डबल वाली मेमोरी आ जाएगी मतलब हमारे डायग्राम में यहां पर बस फ्लोट की जगह इस मेमोरी का टाइप हो जाएगा डबल के इक्वल उससे ज्यादा कोई चेंज नहीं आएगा लेट्स सेव द कोड एंड लेट्स रन इट तो रन किया तो एज सच हमारे पास कोई एरर नहीं आया अभी भी नेम राहुल कुमार है सीजीपी 8.9 है पर अब हम एक इंटरेस्टिंग चीज देखेंगे लेट्स सपोज मेरा ये जो सीजीपीए है सेकंड स्टूडेंट का मुझे इस सीजीपीए को 8.9 नहीं रखना सेकंड स्टूडेंट के लिए मुझे तो इस सीजीपी को चेंज करना है टू लेट्स सपोज 99.2 तो हमने क्या किया s2 का जो सीजीपी पॉइंटर है उसकी वैल्यू या उसे डी रेफरेंस करके उसकी जो वैल्यू है उस वैल्यू को चेंज कर देंगे हम टू 99.2 कि हमारा जो स्टूडेंट टू है उसकी सीजीपीए 99.2 है उसकी सीजीपीए 88.9 नहीं है तो यह दोनों काम करते हैं उसके बाद क्या करेंगे सबसे पहले तो s1 की इंफॉर्मेशन गेट इंफो करेंगे उसके बाद एक बार दोबारा से s1 के लिए गेट इंफो करेंगे एंड लेट्स ट्राई टू सी द चेंज बेसिकली एक s1 स्टूडेंट बनाया एक s2 स्टूडेंट बनाया इसको कह देते हैं राहुल कुमार इस s2 स्टूडेंट को लेट्स सपोज इसका नाम बाद में चेंज कर देंगे टू नेहा कुमार पहले वाला राहुल कुमार है सेकंड वाला नेहा कुमार है अब s1 गट इफ जब हुआ तो स्टूडेंट वन की राहुल की इंफॉर्मेशन प्रिंट हो जाएगी फिर हमने नेहा का क्या किया सीजीपीए 99.2 कर दिया उसके बाद दोबारा राहुल की जब हम इंफॉर्मेशन प्रिंट करवाएंगे तो हम तो एक्सपेक्ट करेंगे कोई चेंज नहीं होना चाहिए था राहुल के लिए तो हमने कोई सीजीपीए के अंदर चेंज नहीं किया यहां पे तो नेहा की थ और सीजीपीए बढ़ा के हमने 99.2 की है लेकिन जब हम फाइनली इस कोड को रन करते हैं लेट्स सेव इट एंड रन तो यह चेंज हमारे कोड के अंदर आता है मतलब राहुल की ओरिजिनल हमने सीजीपी 88.9 रखी थी राहुल की सीजीपीए के अंदर हमने कोई चेंज नहीं किया नेहा की सीजीपीए बढ़ाई थी तो राहुल की भी ऑटोमेटिक सीजीपीए कैसे बढ़ गई यह पॉसिबल हो पाया बिकॉज ऑफ डायनेमिक मेमोरी एलोकेशन बिकॉज ऑफ अ शैलो कॉपी यह प्रॉब्लम आती है शैलो कॉपी में कि जो पॉइंटर को आप पॉइंटर की वैल्यू आप चेंज भी नहीं कर रहे उसकी वैल्यू चेंज हो गई आप तो s2 वाले के सीजी पे पॉइंटर को चेंज कर रहे थे ना लेकिन हमारे लिए तो s1 वाला सीजीपी पॉइंटर चेंज हो गया ये कैसे हो पाया इसके पीछे का लॉजिक समझते हैं अब शैलो कॉपी कहता है कि मैं तो भाई ऊपर ऊपर से क्या करता हूं मैं तो ऊपर ऊपर से वैल्यूज कॉपी कर देता हूं तो अब देखते हैं कौन सी वैल्यूज इसने कॉपी की बेसिकली हमने अपना s1 ऑब्जेक्ट बनाया था इस तरीके का हमारा s1 ऑब्जेक्ट था s1 ऑब्जेक्ट के अंदर एक तो स्ट्रिंग थी नेम नेम के अंदर क्या था नेम के अंदर था राहुल उसके अलावा एक सीजीपीए पॉइंटर था पॉइंटर क्या स्टोर कराता है पॉइंटर एड्रेस स्टोर कराता है तो मेमोरी के अंदर लेट्स सपोज दिस इज द हीप मेमोरी हीप मेमोरी के अंदर 88.9 कहीं आके स्टोर हुआ होगा कौन से एड्रेस पे लेट्स सपोज ये 5555 वाले एड्रेस प स्टोर हुआ 88.9 तो इसने भी क्या किया 55 वाला एड्रेस स्टोर करा लिया अब s2 कहता है मुझे s1 की कॉपी बना के दे दो तो हमारे कॉपी कंस्ट्रक्टर ने उसकी बात मानी और उसे प्यारी सी एक s1 की कॉपी बना के दे दी और इस कॉपी का हमने नाम रख दिया s2 अब ये जो s2 है क्योंकि इसकी ये कॉपी बनी और ये कॉपी कैसी बनी दिस इज अ शैलो कॉपी शैलो कॉपी मतलब वैल्यूज कॉपी हो गई ये नाम इसका भी राहुल हो गया सीजीपी पॉइंटर में इसका भी एड्रेस 555 स्टोर हो गया क्योंकि पॉइंटर तो एड्रेस ही स्टोर कराएगा पर ध्यान से अगर हम दिमाग लगा के सोचे तो हमें पता चलेगा कि मेरा यह वाला सीजीपीए पॉइंटर भी यहीं पॉइंट कर रहा है और मेरा यह वाला सीजीपीए पॉइंटर भी यहीं पॉइंट कर रहा है क्योंकि दोनों के अंदर इवेंचर अब अगर हम s2 के लिए अगर हम नेहा की सीजीपीए को बढ़ा के लेट्स सपोज करना चाहते हैं 99.2 तो हम क्या करेंगे इस एड्रेस पे जाएंगे 555 इस एड्रेस पे पहुंच गए हीप में अब इसकी वैल्यू को हमने क्या किया उठा के चेंज कर दिया टू 9.2 तो कल को जब हम s1 के लिए उसकी सीजी देख रहे हैं तो s1 तो पॉइंट कर रहा है 555 को तो हम इसी एड्रेस प जाएंगे तो इसकी सीजीपीए भी हमें चेंज मिलेगी इवन दो वो चेंज हम नहीं चाहते थे पर वो चेंज फिर भी रिफ्लेक्ट करता है जब हम डायरेक्टली पॉइंटर की ही वैल्यू असाइन कर देते हैं या फिर यहां पर अगर हम खुद का कॉपी कंस्ट्रक्टर ना बनाए तो भी ये सेम प्रॉब्लम आएगी मतलब यह अगर खुद का कॉपी कंस्ट्रक्टर हम यहां से कॉमेंट कर दें और सोचे भाई डिफॉल्ट कंस्ट्रक्टर ही हमें सही कॉपी बना के दे देगा तो डिफॉल्ट कंस्ट्रक्टर भी हमें ये सेम इशू देता है जैसे यहां पर राहुल कुमार के लिए सीजीपीए चेंज हो गया टू 99.2 तो चाहे हम खुद का कंस्ट्रक्टर डायरेक्टली बना रहे हैं चाहे हम डिफॉल्ट कंस्ट्रक्टर यूज कर रहे हैं यह इशू आएगा जब तक हम शैलो कॉपी बना रहे हैं तो इसीलिए हमें जरूरत पड़ती है अपनी डीप कॉपी की डीप कॉपी क्या कहता है डीप कॉपी के लिए कंस्ट्रक्टर हमें खुद से लिखना पड़ता है ऑटोमेटिक कंपाइलर हमें डीप कॉपी का डिफॉल्ट कंस्ट्रक्टर नहीं देगा कंपाइलर तो कहता है मैं तो शालो कॉपी बना के देता हूं मुझसे बनवानी है तो बनवा लो डीप कॉपी वाला बनवाना है तो आपको खुद बनाना पड़ेगा डीप कॉपी वाले कंस्ट्रक्टर के अंदर हम क्या करते हम डायनेमिक एलोकेटेड जो मेमोरी होती है उसकी भी कॉपी बनाते हैं जैसे डीप कॉपी बनाने के लिए हमें क्या करना पड़ेगा उसके लिए हम कहेंगे ओरिजिनल वैल्यूज पर आ जाते हैं हम कहेंगे कि अगर यहां पर 8.9 स्टोर है जिसको हमारा s1 पॉइंट करवा रहा है तो हमारे s2 का जो सीजीपी पॉइंटर है ना इसके लिए हम नया वेरिएबल बनाएंगे लेट्स सपोज दिस हीप मेमोरी इज रियली बिग तो यहां पर हम क्या करेंगे यहां पर हम एक नई जगह एलोकेट करेंगे लेट्स सपोज इसका एड्रेस है 600 यहां पे हम वैल्यू 99.2 स्टोर करवाएंगे और इसका जो एड्रेस 600 है ना उसे हम यहां स्टोर करवाएंगे तो राइट वाला पॉइंटर इसे पॉइंट कर रहा है और ये वाला पॉइंटर इसे पॉइंट कर रहा है अब क्या बन गई अब डीप कॉपी बन गई डीप यानी अब गहराई में जाके आपने जो हीप वाली मेमोरी थी उसको भी कॉपी किया उसकी भी एक कॉपी बनाई अब अगर नेहा अपने मार्क्स चेंज करेगी तो नेहा के मार्क्स चेंज होंगे राहुल अपने मार्क्स चेंज करेगा तो राहुल के मार्क्स चेंज होंगे अब ओवरलैप नहीं होने वाला तो जनरली जब भी हमारे पास डायनेमिक एलोकेटेड मेमोरी होती है तो हम डीप कॉपी को प्रेफर करते हैं और हम उसी का कंस्ट्रक्टर लिखते हैं अब इस एग्जांपल के अंदर हम डीप कॉपी कंस्ट्रक्टर कैसे बना सकते थे खुद की डीप कॉपी कैसे बनाते उसको देख लेते हैं कुछ नहीं करना था हीप में नई मेमोरी एलोकेट करनी थी यह हमारा कॉपी कंस्ट्रक्टर था इसमें बस एक छोटा सा चेंज हमें करना था कि हमारा जो सीजीपीए पॉइंटर है उसको कर देते न्यू डबल एंड फिर दिस सीजीपीए पॉइंटर के अंदर बस इस वैल्यू को कॉपी कर देते वैल्यू को कॉपी कर देते मतलब मतलब हमारा जो सीजी जीपीए पॉइंटर है जिस वैल्यू को पॉइंट करवा रहा है वहां पे जाके हम वही वैल्यू स्टोर कर देते जो हमारे ऑब्जेक्ट के सीजीपीए पॉइंटर के अंदर स्टोर्ड है मतलब शुरुआत में तो यह भी 8.9 होता और अलग जगह पे हम यहां भी 8.9 लगाते तो दोनों जगह हम 88.9 88.9 की दो कॉपीज बनाते हैं क्योंकि कॉपी कंस्ट्रक्टर क्या करता है डीप कॉपी बनाता है फिर बाद में जाके मेन फंक्शन में इस वाले को चेंज करके 99.2 कर देते हैं तो सीजीपी पॉइंटर को पहले तो हमने दोबारा से डायनेमिक मेमोरी एलोकेट की उसके बाद क्या किया जो वैल्यू ओरिजिनल के अंदर स्टोर्ड है वही वैल्यू यहां पर स्टोर करवाई अब इसे अगर सेव करें एंड इस बार अगर हम कोड को रन करें बिना मेन फंक्शन के अंदर चेंजेज के तो इस बार क्या हुआ इस बार राहुल कुमार के मार्क्स उतने के उतने रहे बस नेहा ने अपने मार्क्स चेंज किए टू 99.2 और नेहा के लिए अगर हम ए2 गट इंफो कॉल करते तो वहां पर हमें ज्यादा मार्क्स मिलते नेहा के लिए कॉल करने से पहले ए2 का नेम भी चेंज कर लेते हैं डॉट नेम इ इक्वल टू नेहा तो इट विल बी मोर क्लियर फॉर अस तो यहां पे नेहा के मार्क्स आ गए 99.2 और राहुल कुमार के 88.9 के 8.9 र सो दिस इज द ग्रेट डिफरेंस बिटवीन शैलो कॉपी एंड डीप कॉपी इन c+ प और ये काफी इंपॉर्टेंट कांसेप्ट है इंटरव्यूज के अंदर पूछ लिया जाता है और ये सिर्फ c+ का कांसेप्ट नहीं है एज अ गुड प्रोग्रामर एज अ गुड डेवलपर आपको पता होना चाहिए क्योंकि अगर आप कल को जावा के साथ काम करेंगे कल को दूसरी प्रोग्रामिंग लैंग्वेजेस के साथ काम करेंगे तो जनरली ऊप्स के कांसेप्ट ऐसे हैं जो ऑल ओवर लैंग्वेजेस और ऑलमोस्ट सेम रहते हैं ऐसे ही क्लासेस आप जावा में बनाते हैं ऐसे ही क्लासेस हम दूसरी लैंग्वेजेस के अंदर बनाते हैं तो एक बार अगर आपको सी प्लस प् के अंदर कांसेप्ट क्लियर हो गए तो जनरली दूसरी लैंग्वेजेस के भी कांसेप्ट हमें इजी लगेंगे अब नेक्स्ट हम बात करने वाले हैं अबाउट द कांसेप्ट ऑफ डिस्ट्रक्टर डिस्ट्रक्टर जो होता है डिस्ट्रक्टर इज ऑपोजिट ऑफ कंस्ट्रक्टर जैसे कंस्ट्रक्टर का काम होता है मेमोरी को एलोकेट करना यानी मेमोरी देना ऑब्जेक्ट को डिस्ट्रक्टर का काम होता है मेमोरी को डी एलोकेट करना यानी ऑब्जेक्ट को जो भी मेमोरी दी गई है हमारी मेमोरी कंप्यूटर सिस्टम की मेमोरी के अंदर उसको हटाना वहां से उस मेमोरी को साफ करना तो डिस्ट्रक्टर भी हमारा एक स्पेशल फंक्शन होता है और ऑटोमेटिक कंपाइलर हमारे लिए खुद से डिस्ट्रक्टर बना देता है जब हम नहीं बनाते जैसे अभी तक हमने कोई डिस्ट्रक्टर नहीं बनाया फिर भी मेन फंक्शन खत्म होने के बाद ऑटोमेटिक हमारी ऑब्जेक्ट्स जो है वो साफ हो रही है तो ऑटोमेटिक एक डिस्ट्रक्टर जो है हमारे लिए बना हुआ है पर हमारा जो डिस्ट्रक्टर है ना वो सिर्फ स्टैटिकली एलोकेटेड मेमोरी को डी एलोकेट करता है वही प्रॉब्लम आ जाती है यहां पे जो शैलो कॉपी डीप कॉपी में आती थी कि अगर आपने ऑब्जेक्ट के अंदर डायनेमिक कोई मेमोरी एलोकेट की है तो उसे आपको डायनेमिक ही डी एलोकेट करना पड़ेगा c+ प के अंदर जिस मेमोरी को हम डायनेमिक एलोकेट करते हैं उसके लिए अगर हम न्यू कीवर्ड यूज करते हैं तो उसको डी एलोकेट करने के लिए हमें डिलीट कीवर्ड यूज करना पड़ता है और मेमोरी को फ्री कैसे करते हैं लेट्स सपोज ये वैसे तो ऊप्स कांसेप्ट नहीं है पॉइंट्स का कांसेप्ट है लेट्स सपोज ये हमारा हीप है हीप के अंदर यह कोई मेमोरी है एड्रेस है 100 यहां पे वैल्यू लेट्स सपोज स्टड है 55 इस 55 की तरफ पॉइंट कर रहा है हमारा कोई पीटीआर पॉइंटर अगर अब हमें इस मेमोरी को फ्री करना है तो हम लिखते हैं डिलीट पीटीआर डिलीट पीटीआर का यह मतलब नहीं होता कि पॉइंटर को डिलीट कर दो डिलीट पीटीआर का मतलब होता है कि पॉइंटर जिस मेमोरी को पॉइंट कर रहा है उस मेमोरी को डिलीट कर दो पॉइंटर तो फिर भी रहेगा आप यहां पे सी आउट कर सकते हैं इसके बाद में पीटीआर तो ये जो पॉइंटर है ये तो सर्वा भी करता है पॉइंटर डिलीट नहीं होता पर पॉइंटर जिस मेमोरी को पॉइंट करता है हीप के अंदर वो मेमोरी डिलीट हो जाती है तो अगर किसी भी क्लास के अंदर हमने न्यू से डायनेमिक मेमोरी एलोकेट की है तो उसको डी एलोकेट करना बहुत जरूरी है तो यहां पर हमने क्या किया है यहां पर जैसे हमारा जो सीजी पे पॉइंटर है इसको हमने न्यू करके मेमोरी डी एलोकेट की थी तो इसको डी एलोकेट करना जरूरी है तो इस क्लास के लिए हमारा डिस्ट्रक्टर बनाना जरूरी है अभी के लिए एक बार एक नॉर्मल डिस्ट्रक्टर बनाते हैं नॉर्मल डिस्ट्रक्टर बनाने के लिए हमें क्या करना पड़ता है डिस्ट्रक्टर हैज द सेम नेम एज द क्लास यानी अगर स्टूडेंट क्लास का डिस्ट्रक्टर बनाना है तो इसका नाम भी स्टूडेंट ही होगा अभी के लिए क्या करेंगे एक बार एक कॉपी कंस्ट्रक्टर हटा लेते हैं क्योंकि इस वाले कांसेप्ट को हमने कवर कर लिया है एंड यहां पर भी ये सारी चीजें हटा लेते हैं मेन फंक्शन के अंदर बस हमने s1 स्टूडेंट ऑब्जेक्ट को बनाया और उसके लिए फिर गेट इंफो कॉल किया है तो यह हमारा कंस्ट्रक्टर हो गया डिस्ट्रक्टर बनाने के लिए हमें सेम ही सिंटेक्स लिखना होता है बस अपने फंक्शन के आगे हम एक टिल्ड का सिल लगा देते हैं जो हमारे कीबोर्ड के टॉप लेफ्ट साइड पर हमें मिलता है टिल्ड वाला सिंबल इसको बोलते हैं इस सिंबल को लगाते हैं और लेट्स सपोज हमने अपना खुद का डिस्ट्रक्टर बना लिया जिसमें हम प्रिंट करवा रहे हैं हाई आई डिलीट एवरीथिंग तो डिस्ट्रक्टर का काम ही होता है चीजों को डिलीट करना डी एलोकेट करना तो ये चीज हम प्रिंट करवा रहे हैं तो इवन दो डिस्ट्रक्टर को हम खुद कॉल नहीं करते पर जैसे कंस्ट्रक्टर ऑटोमेटिक कॉल हो जाता है वैसे ही डिस्ट्रक्टर भी ऑटोमेटिक कॉल हो जाता है यानी मेन फंक्शन में पहले हमारा फंक्शन रन करेगा तो क्या होगा पहले स्टूडेंट ऑब्जेक्ट बनेगी फिर उसकी इंफॉर्मेशन प्रिंट होगी तो यहां उसकी इंफॉर्मेशन प्रिंट हो गई फिर जैसे ही ये मेन फंक्शन खत्म हो रहा होगा तो कंपाइलर डिटेक्ट करता है कि अच्छा ये मेन फंक्शन खत्म हो रहा है मतलब इसके बाद ये s1 वाली ऑब्जेक्ट की जो मेमोरी है ये इसकी तो जरूरत पड़ेगी नहीं तो उस मेमोरी को डी एलोकेट कर दो ऑब्जेक्ट को डिलीट कर दो मेमोरी से तो डिलीट करने के लिए डिस्ट्रक्टर कॉल होगा तो उसने प्रिंट करवा दिया हाई आई डिलीट एवरीथिंग तो जब हम खुद डिस्ट्रक्टर नहीं बनाते ऑटोमेटिक डिस्ट्रक्टर बनता है और डिस्ट्रक्टर को हमें अलग से कॉल नहीं करना पड़ता वो ऑटोमेटिक कॉल होता है डिपेंडिंग अपॉन कब हमारा ऑब्जेक्ट आउट ऑफ स्कोप जाता है मतलब कोड के अंदर कब हमारे ऑब्जेक्ट की जरूरत नहीं पड़ती अब डिस्ट्रक्टर के अंदर सिर्फ हमारी ये जो नॉर्मल मेमोरी है नॉर्मल वेरिएबल ये फ्री होते हैं पॉइंटर वाली जो न्यू वाली डायनेमिक एलोकेटेड मेमोरी है इसको फ्री करने के लिए हमें क्या करना पड़ता है इसको फ्री करने के लिए हमें लिखना पड़ता है डिलीट सीजीपीए पीटीआर कि सीजीपीए पॉइंटर जिस मेमोरी की तरफ पॉइंट कर रहा है उस ऑक्यूपाइड मेमोरी को फ्री कर दो तो यह एक्स्ट्रा स्टेप है जिसको हमें लेने की जरूरत होती है अपने डिस्ट्रक्टर के अंदर तो स्टेप को हमने ले लिया तो एज सच हमारे कोड के अंदर चेंज नहीं आएगा वो मेमोरी के अंदर चेंज आ रहा है पर वैसे तो क्योंकि यहां पर अपना जब हम डीएसए पढ़ रहे होते हैं जब हम उप्स पढ़ रहे होते हैं तो हम c+ प की सिंगल फाइल यूज़ कर रहे होते हैं और जनरली हम किसी कोड एडिटर में यूज़ कर रहे होते हैं जैसे विजुअल स्टूडियो कोड हो गया या कोई और कोड एडिटर अगर आपके पास है तो यहां पे क्या होता है ऑटोमेटिक जैसे ही आपका पूरा कोड खत्म हो जाता है जितनी भी मेमोरी आपका कोड ले रहा था वो वैसे भी फ्री होनी है चाहे आप डिस्ट्रक्टर यूज़ कर रहे हैं चाहे नहीं कर रहे लेकिन जब भी हम ऑर्गेनाइजेशन लेवल पे कंपनी लेवल पे जाते हैं तो वहां पे चीजें बहुत ज्यादा इंपॉर्टेंट हो जाती हैं इसीलिए इन्हें इंटरव्यूज में पूछा जाता है कि डिस्ट्रक्टर की नॉलेज हमें प्रॉपर्ली है या नहीं है क्योंकि अगर डायनेमिक एलोकेटेड मेमोरी को हमने अलग से ये डिलीट कीवर्ड लिख के फ्री नहीं किया तो कई सारे इश्यूज आ सकते हैं वन ऑफ देम इज मेमोरी लीक मेमोरी लीक का मतलब है कि कई सारी मेमोरी आपने हीप के अंदर बना बना के छोड़ दी अब उस मेमोरी की तरफ कोई पॉइंटर पॉइंट भी नहीं कर रहा और वो मेमोरी दूसरे कामों के लिए भी यूज नहीं हो सकती बेसिकली वो मेमोरी क्या हो गई वेस्ट हो गई तो इस तरीके से सिस्टम की मेमोरी को ना वेस्ट करना ही हमारी अप्रोच होनी चाहिए एंड दैट इज व्हाई डिस्ट्रक्टर्स बिकम इंपॉर्टेंट नेक्स्ट हम बात करने वाले हैं अबाउट द कांसेप्ट ऑफ इन्हेरिटेंस इन्हेरिटेंस इज वन ऑफ द फोर पिलर्स ऑफ हूप्स इन्हेरिटेंस वैसे डे टू डे लाइफ में हमने ऑब्जर्व की होगी हमारे जो पेरेंट्स होते हैं वह क्या करते हैं वोह हमारी क्वालिटीज पास ऑन करते हैं टू अस तो पेरेंट क्या करता है अपनी जो क्वालिटीज होती हैं वोह चाइल्ड को को पास ऑन करता है इस प्रोसेस को हम इन जनरल इंग्लिश के अंदर क्या कहते हैं इन्हेरिटेंस कह देते हैं और इसी कांसेप्ट को सी प्स के अंदर भी इन्हेरिटेंस बोलते हैं बेसिकली अगर एक क्लास लेट्स सपोज दिस इज अ क्लास ए अगर अपनी प्रॉपर्टीज पास कर रही है टू सम अदर क्लास बी तो हम कहते हैं क्लास बी क्या कर रही है क्लास ए से चीजें इन्हेरिटेंस तो क्लास ए के अंदर जो भी प्रॉपर्टीज होंगी वो क्लास बी के अंदर प्रॉपर्टीज आ जाएंगी और इस तरीके से जब इन्हेरिटेंस होती है तो उसमें क्लास ए को जनरली हम अपनी पैरेंट क्लास बोलते हैं या फिर इसे हम अपनी बेस क्लास बोलते हैं और क्लास बी को या तो हम अपनी चाइल्ड क्लास बोलते हैं या फिर इसे डिराइवर फंक्शंस ऑफ बेस क्लास आर पास्ड ऑन टू द डिराइवर तब हम इन्हेरिटेंस को यूज़ करते हैं अब इन्हेरिटेंस को यूज़ क्यों किया जाता है इन्हेरिटेंस को यूज़ किया जाता है फॉर कोड रीयूज बिलिटी कोड रीयूज बिलिटी कहने का मतलब है फॉर एग्जांपल क्लास a के अंदर कोई प्रॉपर्टी है इंटी जर x वही प्रॉपर्टी क्लास बी के अंदर भी यूज़ होती है अब उसको दोबारा बनाने की बजाय हम क्या करें उस प्रॉपर्टी को डायरेक्टली इन्हेरिटेंस ए से अब यहां पे तो मैंने इंटी जर x बहुत छोटा सा एग्जांपल लिया पर कंपनीज के अंदर बहुत बड़ी-बड़ी क्लासेस होती हैं जिनके अंदर बहुत सारी प्रॉपर्टीज होती हैं अब बहुत सारी प्रॉपर्टीज का कोड आप बार-बार बार-बार हर क्लास में लिखें उससे अच्छा क्या है उसको इन्हेरिटेंस बहुत इंपॉर्टेंट होती है फॉर कोड रीयूज बिलिटी कि एक बार आपने कोड लिख लिया अब उस कोड को हम डायरेक्टली रीयूज कर रहे हैं उसे दोबारा यहां पे लिखने की जरूरत नहीं है तो इसका एक एग्जांपल देखते हैं लेट्स सपोज हमने एक क्लास क्रिएट की पर्सन पर्सन यानी कोई भी इंसान अब हर इंसान का एक नाम होगा हर इंसान की एक एज होगी तो इसके लिए हमने क्या किया दो पब्लिक हमने प्रॉपर्टीज बना दी एक तो स्ट्रिंग हो गई नेम एंड एक इंटी जर हो गई ए तो इस तरीके से हम अपना पर्सन क्रिएट कर सकते हैं पर्सन के अंदर हमारे पास स्ट्रिंग नेम आएगी एंड वी विल आल्सो गेट एज तो दिस स्ट्रिंग इज इक्वल टू दिस नेम इज इक्वल टू नेम एंड दिस एज इज इक्वल टू ए तो ये हमारी प्रॉपर पूरी की पूरी पर्सन क्लास क्रिएट हो गई अब हम एक और क्लास बनाना चाहते हैं स्टूडेंट क्लास हमारी स्टूडेंट क्लास के अंदर हमें क्या-क्या प्रॉपर्टीज चाहिए एक तो हमें स्टूडेंट का नाम चाहिए एक हमें स्टूडेंट की एज चाहिए एक हमें स्टूडेंट का रोल नंबर चाहिए अब हमें पता चलेगा स्टूडेंट का नाम और जज तो ऑलरेडी हम ऊपर डिफाइन कर चुके हैं तो हमें दोबारा तो एज सच डिफाइन करने की जरूरत नहीं है हम तो सिर्फ एक्स्ट्रा रोल नंबर डिफाइन कर देंगे और पर्सन को क्या करेंगे इन्हेरिटेंस को इन्हेरिटेंस मॉडिफाई लेट्स सपोज आवर एक्सेस मॉडिफाई पब्लिक एंड फिर हम अपनी बेस क्लास का नाम लिखते हैं यहां पे एक्सेस मोडिफाय किस तरीके से काम कर रहा होता है मतलब यहां पे हमने क्यों पब्लिक लिखा उसके बारे में अभी हम डिटेल में पढ़ेंगे पर बेसिकली हमारे डिफरेंट डिफरेंट मोड्स होते हैं इन्हेरिटेंस के कि आप प्राइवेट मोड में इन्हेरिटेंस मोड में इन्हेरिटेंस क्लास की प्रॉपर्टीज को इन आवर स्टूडेंट क्लास तो उससे क्या होगा ये जो नेम एंड एज है यह हमारे लिए स्टूडेंट क्लास में आ जाएंगी अब हमें नेम और एज डिफाइन करने की जरूरत नहीं है वो वहां पे ऑलरेडी है हम सिर्फ रोल नंबर डिफाइन करेंगे एंड एक बार के लिए क्या करते हैं एक बार के लिए इसका यह वाला जो कंस्ट्रक्टर है इसे हटा के एक सिंपल कंस्ट्रक्टर जो है उसे क्रिएट करते हैं लेट्स सपोज दिस इज अ सिंपल कंस्ट्रक्टर जो पर्सन क्लास के अंदर है अभ ये कुछ पैरामीटराइज नहीं है तो स्टूडेंट क्लास के अंदर अब क्या करेंगे स्टूडेंट क्लास के अंदर भी कुछ पब्लिक प्रॉपर्टी डिफाइन कर देंगे कि हमारा एक रोल नंबर हो सकता है और एक फंक्शन डिफाइन कर देंगे गेट इंफो स्टूडेंट का जो गेट इंफो फंक्शन है उसमें एक तो स्टूडेंट का नाम प्रिंट करवाएंगे तो एक तो हो जाएगा नेम एक यहां पर हम स्टूडेंट के लिए उसकी एज प्रिंट करवाएंगे तो यह हो जाएगी एज एंड एक उसका रोल नंबर प्रिंट करवाएंगे तो यह हो जाएगा स्टूडेंट का रोल नंबर अब यहां चीज एक नोट करने वाली है कि स्टूडेंट क्लास के अंदर हमने तो कोई प्रॉपर्टी नहीं बनाई नेम और ज की फिर भी हम नेम और एज को गेट इंफो के अंदर एक्सेस करेंगे और कोई एरर नहीं आएगा तो मेन फंक्शन के अंदर स्टूडेंट की एक ऑब् सब्जेक्ट बनाते हैं स्टूडेंट s1 और स्टूडेंट s1 के लिए s1 नेम इ इक्वल टू लेट्स सपोज राहुल एंड s1 ए इ 21 एंड s1 डॉट रोल नंबर इज इक्वल टू 1 2 3 4 इस तरीके से हमने इंफॉर्मेशन डिफाइन कर दी अब s1 के लिए गेट इंफो को कॉल करते हैं लेट्स सेव इट एंड एग्जीक्यूट यहां सेमीकलन मिसिंग था सेमीकलन लगा लेते हैं तो क्या हुआ कोई एरर नहीं आया सारी की सारी चीजें वैसे ही वर्क कर गई इवन दो स्टूडेंट क्लास के अंदर हमने कोई नेम और एज नाम की प्रॉपर्टीज नहीं डिफाइन की तो स्टूडेंट क्लास ने क्या किया इसने पर्सन से उन प्रॉपर्टीज को इन्हेरिटेंस हैं वो ऐसे ट्रीट करेंगे जैसे नेम और एज इसी की प्रॉपर्टीज है क्योंकि वो एक्चुअली अब इसी की प्रॉपर्टीज बन चुकी है तो इस तरीके से हमारा इन्हेरिटेंस काम करता है तो जब भी इन्हेरिटेंस होती है तो हमारी पेरेंट क्लास की सारी प्रॉपर्टीज अब हमारी चाइल्ड क् के अंदर भी एजिस्ट करती है एंड जब भी इन्हेरिटेंस हो रहा होता है और हम चाइल्ड क्लास की ऑब्जेक्ट बनाते हैं जैसे फॉर एग्जांपल इफ वी ट्राई टू क्रिएट एन ऑब्जेक्ट ऑफ बी क्लास बी क्लास की अगर हम कोई ऑब्जेक्ट बनाएंगे तो सबसे पहले क्या होता है सबसे पहले बेस क्लास का कंस्ट्रक्टर कॉल होता है उसके बाद हमारी डिराइवर बनाते हैं स्टूडेंट और से कह देते हैं या डिराइवर की जगह सी आउट चाइल्ड कंस्ट्रक्टर एंड इसी तरीके से एक और पर्सन के अंदर ऑलरेडी हमने कंस्ट्रक्टर बनाया हुए है तो यहां सिंपली सी आउट कर देंगे पैरेंट कंस्ट्रक्टर तो वेरीफाई भी करते हुए देखेंगे कंस्ट्रक्टर्स तो ऑटोमेटिक कॉल होते हैं तो लेट्स क्लियर दिस एंड रन द कोड तो सबसे पहले क्या हुआ जैसे ही स्टूडेंट क्लास की हमने यहां पर ऑब्जेक्ट बनाने की कोशिश की वैसे हम स्टूडेंट क्लास के अंदर आए स्टूडेंट क्लास के अंदर यह कंस्ट्रक्टर कॉल होने से पहले यह देखेगा अच्छा यह तो पर्सन को इन्हेरिटेंस को क्रिएट करो तो स्टूडेंट से पहले क्या बनेगा पर्सन बनेगा तो पेरेंट क्लास का कंस्ट्रक्टर कॉल हुआ उसके बाद हम अपने स्टूडेंट क्लास के यानी अपने चाइल्ड क्लास के कंस्ट्रक्टर के अंदर आए तो कंस्ट्रक्टर कौन से सीक्वेंस में कौन से ऑर्डर में कॉल होते हैं यह भी एक काफी इंपॉर्टेंट इंटरव्यू क्वेश्चन है जब भी इन्हेरिटेंस होती है पहले पेरेंट क्लास का कंस्ट्रक्टर कॉल हो फिर चाइल्ड क्लास का कंस्ट्रक्टर कॉल होता है और डिस्ट्रक्टर में अपोजिट होता है जब भी कोई ऑब्जेक्ट आउट ऑफ स्कोप जाती है मतलब जब भी किसी ऑब्जेक्ट की मेमोरी डी एलोकेट होती है तो पहले चाइल्ड क्लास की मेमोरी डी एलोकेट होती है फिर पेरेंट क्लास की मेमोरी डी एलोकेट होती है और इस चीज को आप दोनों क्लासेस के कंस्ट्रक्टर बनाकर वेरीफाई भी कर सकते हैं यहां पे एक बार पॉज करना है दोनों क्लासेस के डिस्ट्रक्टर्स बनाने हैं डिस्ट्रक्टर्स में लिखना है चाइल्ड डिस्ट्रक्टर पेरेंट डिस्ट्रक्टर और फिर देखना है कि जब मेन फंक्शन खत्म होगा तो किसका डिस्ट्रक्टर पहले कॉल हो रहा है वो चीज़ आपके लिए वेरीफाई हो जाएग कंस्ट्रक्टर में बेस पहले डिराइवर बाद में डिस्ट्रक्टर में डिराइवर है वो एक पैरामीटराइज्ड कंस्ट्रक्टर है पैरामीटराइज कंस्ट्रक्टर कहने का मतलब है पर्सन के अंदर इस तरीके का कंस्ट्रक्टर नहीं है पर्सन के अंदर इस तरीके का नॉर्मल कंस्ट्रक्टर है तो पैरामीटराइज कंस्ट्रक्टर ऑटोमेटिक तो कॉल होते नहीं क्योंकि उन्हें कंपाइलर ने नहीं बनाया उन्हें तो इंसान ने बनाया प्रोग्रामर ने हमने बनाया है तो ऐसे कंस्ट्रक्टर को कौन कॉल करेगा ऐसे कंस्ट्रक्टर को हम कॉल करते हैं बेसिकली बिफोर आवर ओन कंस्ट्रक्टर स्टूडेंट अपने वाले कंस्ट्रक्टर से पहले हम क्या करेंगे इस तरीके से कोलन करके हम यहां अपनी पेरेंट क्लास का नाम लिखते हैं मतलब पर्सन और उसके अंदर हम प्रॉपर्टीज पास कर देते हैं कि स्ट्रिंग पास कर दो नेम एंड इंट पास कर दो एच तो इस तरीके से हमारे कंस्ट्रक्टर के चलने से पहले पर्सन क्लास का कंस्ट्रक्टर कॉल हो जाएगा विद दीज वैल्यूज और हम अपने लिए तो अपनी वैल्यू रख ही सकते हैं कि लेट्स सपोज अगर स्टूडेंट के पास ये तीनों वैल्यूज आई थी तो इनके साथ क्या करना है एक हमारी नेम वैल्यू हो गई एक हमारी एज वैल्यू हो गई और एक हमारी रोल नंबर वैल्यू हो गई तो रोल नंबर को तो हम यही असाइन कर देंगे दिस का रोल नंबर विल बी इक्वल टू रोल नंबर और रोल नंबर से पहले नेम और एज को हम पर्सन क्लास के कंस्ट्रक्टर के पास भेज देंगे तो इस तरीके से हम खुद एक्सप्लीसिटली पेरेंट क्लास के कंस्ट्रक्टर को भी कॉल लगा सकते हैं फ्रॉम आवर ओन चाइल्ड कंस्ट्रक्टर अब यहां पर यह सारी जो वैल्यू इ ऐसे लिखने की जरूरत नहीं है हम बेसिकली s1 को जब डिफाइन करेंगे वहीं लिख देंगे स्टूडेंट का नाम तो राहुल कुमार है सीजीपीए जज है 21 के इक्वल एंड द रोल नंबर इज 1234 तो अब कोड के अंदर एस सच कोई एरर नहीं आएगा तो इसे हमें रन करना है ओके यहां पर क्योंकि हम कंस्ट्रक्टर को कॉल कर रहे हैं तो हमें एस सच टाइप भेजने की जरूरत नहीं है कंस्ट्रक्टर को कॉल करेंगे तो उर्फ वैल्यूज ही पास करनी है टाइप तो हम लिखते नहीं वैल्यूज पास करनी है टाइप तो हम कहां लिखते हैं जब हम फंक्शन को डिफाइन कर रहे हो या तो हम फंक्शन को कॉल कर रहे हैं कंस्ट्रक्टर को एक्सप्लीसिटली लेट्स रन आवर कोड एंड इस तरीके से हमारा कोड बिल्कुल सही तरीके से वर्क कर गया है सो दिस इज व्हाट द बेसिक्स ऑफ इन्हेरिटेंस लुक लाइक यहां पर तो हमने जो इन्हेरिटेंस देखी वो बेसिकली पब्लिक मोड वाली इन्हेरिटेंस देखी पर मोड ऑफ इन्हेरिटेंस का मतलब क्या होता है हमारे पास तीन मोड्स ऑफ इन्हेरिटेंस होते हैं एक होता है प्राइवेट मोड एक होता है प्रोटेक्टेड मोड एक होता है पब्लिक मोड बेसिकली बेस क्लास बेस क्लास मतलब हमारी जो पेरेंट क्लास है उस पेरेंट क्लास के अंदर अगर कोई भी प्राइवेट मेंबर है तो वो कभी इन्हेरिटेंस और प्राइवेट फंक्शंस कभी इन्हेरिटेंस मोड में इन्हेरिटेंस कर रहे हो प्रोटेक्टेड में कर रहे हो चाहे पब्लिक मोड में इन्हेरिटेंस हो रहा हो प्राइवेट मेंबर्स आर नेवर इन्हेरिटेंस जो होते हैं वो हर केस में इन्हेरिटेंस के अंदर चाइल्ड क्लास के अंदर वो प्रॉपर्टी पब्लिक बन जाएगी प्रोटेक्टेड मोड में वह प्रॉपर्टी प्रोटेक्टेड बन जाएगी और प्राइवेट मोड में वह प्रॉपर्टी प्राइवेट बन जाएगी बेसिकली अगर यहां मोड हमने प्राइवेट कर दिया होता तो यहां पे ये जो हमारा स्ट्रिंग और एज पब्लिक है ये इस क्लास में आके प्राइवेट बन जाते हैं और उस केस में अगर हम यहां पर मेन फंक्शन के अंदर सी आउट करने की कोशिश करते s1 . नेम तो यहां s1 . नेम में पेंसिस नहीं आएगा तो इसे एग्जीक्यूट करते तो यहां हमारे पास एरर आ जाता कि कंस्ट्रेंड बाय प्राइवेट इन्हेरिटेंस कि पर्सन की जो प्रॉपर्टीज है उन्हें हमने प्राइवेट मोड में इन्हेरिटेंस को आप इस तरीके से एक्सेस नहीं कर सकते मेन फंक्शन के अंदर एंड तीसरा हमारे पास होता है प्रोटेक्टेड बेसिकली अगर हमारे पास कोई प्राइवेट प्रॉपर्टी है जिसे हम इन्हेरिटेंस नहीं देना चाहते क्लास के बाहर बस इन्हेरिटेंस क्लासेस में तो इन प्राइवेट प्रॉपर्टीज को हम प्रोटेक्टेड बना देते हैं यही मतलब होता है प्रोटेक्टेड का सिर्फ इन्हेरिटेंस के लिए पास करना है इन्हें और कुछ काम नहीं करवाना तो इन्हें प्रोटेक्टेड बना दो तो जितनी भी प्रोटेक्टेड प्रॉपर्टीज होती हैं उन्हें अगर पब्लिक मोड में पास करें तो वो प्रोटेक्टेड रहती हैं प्रोटेक्टेड मोड में पास करें तब भी प्रोटेक्टेड रहती हैं और प्राइवेट मोड में अगर पास करें तो वो भी प्राइवेट बन जाती है तो जिस भी ऐसी प्रॉपर्टी को आपको इन्हेरिटेंस के अंदर अगर प्रोटेक्टेड मेंबर्स होते हैं तो उन्हें वो क्लास तो एक्सेस कर ही सकती है साथ के साथ जो उन क्लासेस की डिराइवर अर इन्हेरिटेंस क्यों ना परफॉर्म किया हो अब यह तो हो गए मोड्स ऑफ इन्हेरिटेंस इसके अलावा देयर आर आल्सो टाइप्स ऑफ इन्हेरिटेंस फर्स्ट टाइप ऑफ इन्हेरिटेंस होता है सिंगल इन्हेरिटेंस जब हम एक पैरेंट क्लास से एक बेस क्लास के अंदर प्रॉपर्टीज को पास ऑन करते हैं जैसे हमने क्या किया अभी हमने अपनी पर्सन क्लास बनाई थी पर्सन क्लास ने प्रॉपर्टीज किसको पास ऑन की हमारी स्टूडेंट क्लास को तो अभी जो हमने एग्जांपल देखा यहां पे पर्सन एंड स्टूडेंट का दिस एग्जांपल वाज एन एग्जांपल ऑफ सिंगल लेवल इन टेंस या सिंपली सिंगल इन्हेरिटेंस इसके अलावा सेकंड टाइप ऑफ इन्हेरिटेंस होती है मल्टी लेवल इन्हेरिटेंस जिसमें बहुत सारे लेवल्स पे इन्हेरिटेंस चल रहा होता है जैसे फॉर एग्जांपल एक है हमारी पर्सन क्लास एक है हमारी स्टूडेंट क्लास और एक हो गई हमारी ग्रेजुएट स्टूडेंट क्लास ग्रेजुएट स्टूडेंट्स आ बेसिकली लाइक एमटेक स्टूडेंट्स और पीएचडी स्टूडेंट्स जो एडिशनल कुछ ना कुछ पढ़ा भी रहे होते हैं तो पर्सन के अंदर प्रॉपर्टीज आ गई नेम इसके अलावा हमारे पास एज आ गई स्टूडेंट के पास अपना रोल नंबर आ गया अब जो ग्रेड स्टूडेंट होता है उसके पास नेम एज रोल नंबर तो होता ही है साथ के साथ ग्रेड स्टूडेंट किसी ना किसी टॉपिक पे रिसर्च कर रहा होता है तो इसका रिसर्च एरिया आ गया या रिसर्च टॉपिक आ गया तो इसके अंदर एक एक्स्ट्रा प्रॉपर्टी हम ऐड कर सकते हैं तो इस तरीके से मल्टीपल लेवल पे इन्हेरिटेंस चल सकती है इसे कोड के अंदर अगर कन्वर्ट करें तो इट विल लुक समथिंग लाइक दिस कि यह तो हमारी पर्सन क्लास है यह कंस्ट्रक्टर यहां से हटा देते हैं यह हमारी स्टूडेंट क्लास है जो पर्सन क्लास की प्रॉपर्टीज को इन्हेरिटेंस क्लास के पास सिर्फ एक चीज एक्स्ट्रा है क्या रोल नंबर तो यह हमारी पर्सन क्लास हो गई य पर्सन क्लास की प्रॉपर्टीज इन्हेरिटेंस हो गई और यह हमारी एक और क्लास हो गई ग्राड स्टूडेंट जो किसकी प्रॉपर्टीज इरेट कर रही है जो पब्लिक मोड में स्टूडेंट की प्रॉपर्टीज इन्हेरिटेंस पर्सन की प्रॉपर्टीज तो थी तो पर्सन की और स्टूडेंट की दोनों की प्रॉपर्टीज अब ग्राड स्टूडेंट में आ गई लेट अस करेक्ट दिस स्पेलिंग ग्राड स्टूडेंट के पास एक और एक्स्ट्रा प्रॉपर्टी है व्हिच इज बेसिकली स्ट्रिंग रिसर्च एरिया तो इस क्लास ने इस क्लास को प्रॉपर्टीज भेजी और इस क्लास ने अपनी सारी प्रॉपर्टीज ग्रेड स्टूडेंट क्लास को भेजी अब अगर हम ग्राड स्टूडेंट क्लास की एक ऑब्जेक्ट बनाएंगे ग्रेड स्टूडेंट s1 एव के लिए लेट्स सपोज वी डिफाइन द नेम टू बी टोनी स्टार्क ठीक है एव के लिए रिसर्च एरिया लेट्स सपोज इट्स गोइंग टू बी मे बी क्वांटम फिजिक्स इज द रिसर्च एरिया एंड अगर हम सी आउट करवा रहे हैं एव ड नेम एंड सी आउट करवा रहे एव डॉट रिसर्च एरिया य दोनों वैल्यूज वी हैव टू पुट अ सेमीकलन हियर यह दोनों वैल्यूज हमारे लिए ठीक तरीके से प्रिंट होकर आ जाएंगी इवन दो ग्राड स्टूडेंट के अंदर हमने कोई नेम नाम की प्रॉपर्टी डिफाइन नहीं की और इसने तो स्टूडेंट से इन्हेरिटेंस कहां से आई स्टूडेंट के पास पर्सन क्लास से आई तो इस तरीके से मल्टीपल लेवल पर भी हमारा इन्हेरिटेंस काम करता है नेक्स्ट टाइप ऑफ इन्हेरिटेंस है मल्टीपल इन्हेरिटेंस मल्टीपल इन्हेरिटेंस त होता है जब एक चाइल्ड क्लास दो पैरेंट क्लास की प्रॉपर्टीज को इन्हेरिटेंस देयर इज अ क्लास कॉल्ड स्टूडेंट स्टूडेंट के पास अपना रोल नंबर है स्टूडेंट के पास अपना नाम है देयर इज अ क्लास कॉल्ड टीचर टीचर के पास अपना सब्जेक्ट है कि वह टीचर कौन सा सब्जेक्ट पढ़ाते हैं प्लस उनकी कुछ सैलरी है अब जनरली हमारे कॉलेजेस के अंदर वैसे तो इंडियन कॉलेजेस में एज सच टीएस नहीं होते पर हमारे जो एमटेक या पीएचडी स्टूडेंट्स होते हैं कॉलेज के अंदर उनको वह कभी-कभी हमें सब्जेक्ट पढ़ाने आते हैं आई डोंट नो अबाउट अदर कॉलेजेस पर हमारे कॉलेज में जो एमटेक या पीएचडी स्टूडेंट्स होते थे वो कभी-कभी पढ़ाने आते थे तो उनका एक स्पेसिफिक सब्जेक्ट भी होता था और उनकी कुछ स्पेसिफिक सैलरी भी होती है कॉलेजस की तरफ से साथ के साथ उनका रोल नंबर और नाम तो होता ही है क्योंकि है तो वो स्टूडेंट ही तो टीएस क्या हो गए टीचिंग असिस्टेंट आर बेसिकली वो क्लासेस जो स्टूडेंट और टीचर दोनों की प्रॉपर्टीज इन्हेरिटेंस हम कैसे कर सकते हैं पहले तो इसके लिए स्टूडेंट क्लास बना लेते हैं सो दिस इज अ नॉर्मल स्टूडेंट क्लास जिसमें एक तो हमारे पास नेम आ गया और एक हमारे पास रोल नंबर आ गया इसी तरीके से हम एक नॉर्मल क्लास बनाएंगे अपनी टीचर क्लास टीचर के पास क्याक है टीचर के पास एक तो है सब्जेक्ट तो पब्लिक ही रखते हैं सारी चीजों को फॉर सिंपलीसिटी एक तो स्ट्रिंग आ गई सब्जेक्ट और एक टीचर के पास सैलरी हो सकती है तो डबल टाइप की वी हैव अ सैलरी तो अगर हम क्लास में लिख ते हैं टीए क्लास बनानी है तो इसमें अगर हम दोनों वैल्यूज को इन्हेरिटेंस मोड में हमें स्टूडेंट को इन्हेरिटेंस का हमें अलग-अलग मोड ऑफ इन्हेरिटेंस बताना पड़ता है और सबको हम कॉमा से सेपरेट करके लिखते हैं तो टीए क्लास स्टूडेंट क्लास से भी इन्हेरिटेंस से भी प्रॉपर्टीज इन्हेरिटेंस सच कोई प्रॉपर्टी नहीं है यह बस इन्हीं दोनों क्लासेस की प्रॉपर्टीज लेती है तो इस ी से हम टीए बना सकते हैं लेट्स ट्राई टू क्रिएट अ टीए यर टी टीव टी व का नेम हो जाएगा अगेन टोनी स्टार्क एंड टीव का जो सब्जेक्ट है वो हो जाएगा मे बी इंजीनियरिंग इवन दो इंजीनियरिंग इज नॉट अ सिंगल सब्जेक्ट लेट्स सी आउ टीड नेम एंड इसी तरीके से सी आउट कर देंगे टी डॉट सब्जेक्ट सेव कर दिया क्लियर कर देते हैं रन कर देते हैं तो वैल्यूज हमारे लिए नॉर्मली प्रिंट हो गई कोई एरर नहीं आया मतलब चीजें ठीक वर्क कर गई तो यहां पे ये क्या है दिस इज एन एग्जांपल ऑफ मल्टीपल इन्हेरिटेंस नेक्स्ट टाइप ऑफ इन्हेरिटेंस इज हायरा कियल इन्हेरिटेंस हायरा केयल इन्हेरिटेंस में एक ही पेरेंट क्लास से मल्टीपल चाइल्ड क्लासेस इन्हेरिटेंस फॉर एग्जांपल पर्सन क्लास है हर इंसान का अपना नाम होता है हर इंसान की अपनी ऐज होती है अब एक होगा स्टूडेंट जिसके पास रोल नंबर एक्स्ट्रा आ जाएगा और एक होगा टीचर जिसके पास सब्जेक्ट एक्स्ट्रा आ जाएगा पर पर्सन तो दोनों ही रहेंगे तो दोनों क्या कर सकते हैं पर्सन की प्रॉपर्टीज को इन्हेरिटेंस इज गोइंग टू बी वेरी सिंपल टू राइट क्लास बनाएंगे पर्सन क्लासेस के नाम हमेशा कैपिटल लेटर से हम रखते हैं फॉर कंसिस्टेंसी कोई ए सच रूल नहीं होता पर फॉर कंसिस्टेंसी जनरली ऑलमोस्ट हर लैंग्वेज के अंदर सारी नहीं बट मेजॉरिटी लैंग्वेजेस के अंदर क्लासेस के नाम कैपिटल ही रखे जाते हैं तो स्ट्रिंग नेम हो गया इंटी जर एज हो गया स्टूडेंट क्लास के अंदर हमारे पास रोल नंबर हो गया और स्टूडेंट क्लास क्या कर रही है पब्लिक मोड में पर्सन को इन्हेरिटेंस उसका सब्जेक्ट हो गया तो दिस इज बेसिकली एन एग्जांपल ऑफ हायरा कियल इन्हेरिटेंस इसके लिए हम अपनी टीचर या स्टूडेंट या पर्सन किसी भी क्लास के ऑब्जेक्ट बनाकर उसको वेरीफाई भी कर सकते हैं नेक्स्ट टाइप ऑफ इन्हेरिटेंस होती है हमारी हाइब्रिड इन्हेरिटेंस हाइब्रिड इन्हेरिटेंस बेसिकली जहां पर कुछ भी चल रहा होता है मतलब सारे टाइप के इन्हेरिटेंस का ये मिक्स है फॉर एग्जांपल हमारे पास पर्सन क्लास है पर्सन क्लास से स्टूडेंट ने प्रॉपर्टीज इन्हेरिटेंस इन्हेरिटेंस दोनों की प्रॉपर्टीज को एक टीए नाम का जो क्लास है वह इन्हेरिटेंस हो गया तो दिस इज़ बेसिकली हाइब्रिड हाइब्रिड इन्हेरिटेंस कह देते हैं इसे एंड इस चीज़ को आप चाहे तो इंप्लीमेंट कर सकते हैं लद इट्स नॉट गोइंग टू बी वेरी डिफिकल्ट जो अभी तक हमने पढ़ा है यह सब उसका मिक्स है अब नेक्स्ट हम बात करने वाले हैं अबाउट द थर्ड पिलर ऑफ़ ऊप व्हिच इज़ कॉल्ड पॉलीमोर्फस ज्म एंड पॉलीमोर्फस ज्म इज़ अ रियली इंटरेस्टिंग कॉन्सेप्ट इन ऊप्स पॉलीमोर्फस ज्म का मतलब होता है इट्स मेड अप ऑफ़ टू वर्ड्स पॉली एंड मॉर्फ का मतलब होता है मल्टीपल बहुत सारे मॉर्फ का मतलब होता है फॉर्म्स बहुत सारी फॉर्म्स यानी जब हमारी ऑब्जेक्ट के पास एबिलिटी होती है कि वह डिफरेंट फॉर्म्स के अंदर एक्ट कर सकती है डिफरेंट फॉर्म्स के अंदर बिहेव कर सकती है डिपेंडिंग ऑन द कॉन्टेक्स्ट दैट इज कॉल्ड पॉलीमोर्फस जम इसका सबसे क्लासिकल एग्जांपल जो हम ऑलरेडी देख चुके हैं इस कंस्ट्रक्टर ओवरलोडिंग हमने क्या कर दिया ओवर लोडिंग हमने क्या किया एक ही क्लास के अंदर दो कंस्ट्रक्टर डिफाइन कर दिए जैसे लेट्स क्लियर ऑल ऑफ दिस एंड लेट्स क्रिएट अ वेरी सिंपल क्लास कॉल्ड स्टूडेंट क्लास स्टूडेंट क्लास के अंदर दो कंस्ट्रक्टर डिफाइन कर लेते हैं पब्लिक रखते हैं दो को पहले तो इसका स्टूडेंट का सिर्फ नेम डिफाइन करते हैं एक कंस्ट्रक्टर हो गया स्टूडेंट का य नॉन पैरामीटर कंस्ट्रक्टर इसमें सी आउट भी करवा देते हैं नॉन पैरामीटराइज कंस्ट्रक्टर मीट राइज कंस्ट्रक्टर और यहां लिख देते हैं स्टूडेंट और इस कंस्ट्रक्टर के अंदर हमारा नेम आएगा एंड इसे हम कह देंगे दिस नेम इज इक्वल टू नेम यह कौन सा कंस्ट्रक्टर हो जाएगा हमारा इसमें सी आउट कर देते हैं पैरामीटर राइज कंस्ट्रक्टर तो हमने क्या किया दो कंस्ट्रक्टर्स बनाए और दोनों का नाम सेम है तो जब हम मेन फंक्शन के अंदर स्टूडेंट क्लास की एक ऑब्जेक्ट बनाएंगे स्टूडेंट s1 तो यहां पर कैसे पता चलेगा कि कौन सी क्लास का कंस्ट्रक्टर कॉल होना चाहिए बेसिकली अगर आपने कोई पैरामीटर्स नहीं दिए तो य ऑटोमेटिक क्या होगा नॉन पैरामीटराइज कंस्ट्रक्टर कॉल होगा उसके लिए देख भी लेते हैं कैसे ओके आई हैव डिफाइंड नेम स्ट्रिंग इट शुड बी स्ट्रिंग नेम नॉन पैरामीटराइज कंस्ट्रक्टर कॉल हुआ पर अगर यहां पैरामीटर्स ले लेंगे टोनी स्टार्क ले लिया मैंने इस रन करेंगे तो इस बार पैरामीटराइज कंस्ट्रक्टर कॉल होगा तो डिपेंडिंग अपॉन द कॉन्टेक्स्ट कॉन्टेक्स्ट मतलब यूज कैसे किया जा रहा है उसके बेसिस पर हमारी ऑब्जेक्ट अपनी फॉर्म चेंज कर सकती है हमारी ऑब्जेक्ट डिसाइड कर सकती है कि कौन सा कंस्ट्रक्टर कॉल होगा तो इसे हम कहते हैं कंस्ट्रक्टर ओवरलोडिंग व्हिच इज़ एन एग्जांपल ऑफ पॉलीमोर्फस ज्म तो पॉलीमोर्फस ज्म में यही हो रता है जनरली कि आप मल्टीपल चीजें डिफाइन करते हैं मल्टीपल चीजों के सेम नाम होते हैं पर फिर भी हमें पता चल जाता है कौन सा वाला कॉल होगा क्यों क्योंकि इंटरनली कॉन्टेक्स्ट बहुत ज्यादा मैटर करता है तो पॉलीमोर्फस ज्म दो टाइप का होता है एक होता है कंपाइल टाइम पॉलीमोर्फस ज्म एक होता है रन टाइम पॉलीमोर्फस ज्म कंपाइल टाइम पॉलीमोर्फस ज्म में कंपाइल टाइम पे ही पता चल जाता है कि आउटपुट क्या आने वाला है रन टाइम पॉलीमोर्फस जम में रन टाइम पर डिसाइड होता है कि क्या आउटपुट आने वाला है जैसे कंपाइल टाइम पॉलीमोर्फस जम का ही एक एग्जांपल है कंस्ट्रक्टर ओवरलोडिंग जो बेसिकली अभी हमने सीखा अब सबसे पहले कंपाइल टाइम पॉलीमोर्फस ज्म को पढ़ेंगे फिर रन टाइम पॉलीमोर्फस ज्म को पढ़ेंगे कंपाइल टाइम पॉलीमोर्फस जम का एक एग्जांपल तो देख ही लिया दूसरा एग्जांपल होता है फंक्शन ओवरलोडिंग जैसे कंस्ट्रक्टर ओवरलोडिंग में हम दो कंस्ट्रक्टर्स बना रहे थे दोनों के नाम क्या थे दोनों के नाम सेम थे दोनों के पैरामीटर्स क्या थे दोनों के पैरामीटर्स अलग थे मतलब दोनों में डिफरेंस कहां था पैरामीटर्स में डिफरेंस था वैसे ही फंक्शन ओवरलोडिंग का मतलब होता है कि एक ही क्लास के अंदर सिंगल क्लास के अंदर आप दो फंक्शंस अगर डिफाइन करें और दोनों फंक्शंस के नाम सेम होने चाहिए बस उनके अंदर पैरामीटर्स अलग हो यहां पे एक पैरामीटर हो सकता है दूसरे में जीरो हो सकते हैं तो पैरामीटर्स अलग कब होते हैं जब नंबर ऑफ पैरामीटर्स डिफरेंट होते हैं या तो आप नंबर डिफरेंट कर दो या आप टाइप डिफरेंट कर दो नंबर डिफरेंट कर दोगे तब भी अलग हो जाएंगे टाइप डिफरेंट कर दोगे तब भी अलग हो जाएंगे तो तब क्या होता है तब हमारे पास इंप्लीमेंट हो जाता है फंक्शन ओवरलोडिंग तो फंक्शन ओवरलोडिंग जब कोई पूछता है आपसे व्हाट इज फंक्शन ओवरलोडिंग फंक्शन ओवरलोडिंग इज एन एग्जांपल और एन इंप्लीमेंटेशन ऑफ कंपाइल टाइम पॉलीमोर्फस ज्म कंपाइल टाइम पॉलीमोर्फस ज्म कैसे होता है कंपाइल टाइम पॉलीमोर्फस जम स्टैटिकली होता है कंपाइल टाइम पे ही हो जाता है एंड फंक्शन ओवरलोडिंग इज व्हेन वी आर डि फाइनिंग टू और मोर फंक्शंस विद द सेम नेम इन द सेम क्लास बट दे ओनली डिफर इन टर्म्स ऑफ देयर पैरामीटर्स रिटर्न टाइप सेम भी हो सकता है रिटर्न टाइप डिफरेंट भी हो सकता है उससे फर्क नहीं पड़ता फर्क पड़ता है सिर्फ हमारे पैरामीटर्स से तो इसका एक एग्जांपल देखते हैं फॉर एग्जांपल हम अपने लिए क्रिएट करते हैं एक क्लास कॉल्ड प्रिंट हमारी प्रिंट क्लास का काम क्या है हमारी प्रिंट क्लास का काम है चीजें प्रिंट करवाना ये इंटी जर को भी प्रिंट करवा देगी ये कैरेक्टर को भी प्रिंट करवा देगी यह बलिन वैल्यू को भी प्रिंट करवा देगी इस प्रिंट क्लास के अंदर हमने दो फंक्शन बनाए एक हमारा शो फंक्शन है कॉल ट वॉइड शो जो क्या करता है इंटी जर एक्स लेता है और सी आउट शो करवा देता है बेसिकली शो करने का मतलब है उसे प्रिंट करवा देता है यहां लिख देते हैं इंटी जर एंड यहां लिख देते हैं अपना एक्स और ऐसा ही हमने एक और फंक्शन बनाया उसका नाम भी शो रखेंगे पर वह क्या करता है वो बेसिकली कैरेक्टर लेता है कैरेक्टर सीच और यह क्या करता है सी को शो करवाता है अब वैसे तो प्रिंट के अंदर दोनों फंक्शंस का सेम नाम है पर क्योंकि दोनों के पैरामीटर्स अलग हैं एक में पैरामीटर है x एक में पैरामीटर है कैरेक्टर तो जब हम प्रिंट क्लास की ऑब्जेक्ट बनाएंगे प्रिंट p1 और p1 के लिए शो को कॉल करेंगे विद लेट्स सपोज सम वैल्यू 10 तो वो ऑटोमेटिक कंपाइल टाइम प ही डिटेक्ट हो जाएगा कि हमारे लिए ये वाला फंक्शन कॉल होने वाला है क्योंकि कॉन्टेक्स्ट क्या है यूसेज क्या है इंटी जर का यूसेज है तो इंटी जर वाला फंक्शन कॉल होगा यहीं पर अगर कैरेक्टर का यूसेज होता फॉर एग्जांपल आवर कैरेक्टर वाज m पर तो यहां पे कैरेक्टर एमसेंट प्रिंट हो जाता तो डिपेंडिंग अपॉन द कॉन्टेक्स्ट सेम चीज क्या कर रही है सेम चीज डिफरेंट फॉर्म्स ले रही है तो इसी चीज को पॉलीमोर्फस ज्म कहा जाता है और पॉलीमोर्फस ज्म की जो डायरेक्ट डेफिनेशन है जो यहां पे लिखी हुई है वो आपको को याद करके जानी है अपने इंटरव्यूज के लिए तो कंपाइल टाइम पॉलीमोर्फस ज्म के हमने दो एग्जांपल्स डिस्कस कर लिए वन वाज कंस्ट्रक्टर ओवरलोडिंग वन वाज फंक्शन ओवरलोडिंग इसी तरीके से एक और एग्जांपल होता है ऑपरेटर ओवरलोडिंग ऑपरेटर ओवरलोडिंग में क्या होता है बेसिकली सेम ऑपरेटर को मल्टीपल तरीके से यूज किया जाता है फॉर एग्जांपल अगर हमने लिख दिया इंट x = y और y भी कोई इंटी जर था इ इक्व 10 तो हम कह सकते हैं x के अंदर 10 ही वैल्यू आ गई होगी तो यह ऑपरेटर इक्वल टू कहां यूज हुआ यह ऑपरेटर इक्वल टू हमारी इस इंटी जर के लिए यूज़ हुआ पर हम स्ट्रिंग्स को भी लिख सकते हैं स्ट्रिंग a इ इक्व b अगर b कोई स्ट्रिंग है b = ए c तो अब a के अंदर भी क्या वैल्यू आ गई a के अंदर भी ए बी स वैल्यू आ गई जो हमारी स्ट्रिंग लाइब्रेरी होती है जिसको हम इंपोर्ट करते हैं यहां वो इंटरनली क्या करती है वो इंटरनली इस इक्वल टू साइन को ओवरलोड करती है इसके अंदर एक एक्स्ट्रा फंक्शनैलिटी ऐड करती है कि इक्वल टू का मतलब स्ट्रिंग के लिए क्या है कि इस स्ट्रिंग की एक कॉपी बना दो वैल्यू की इस स्ट्रिंग के अंदर तो यहां पे भी ओवरलोडिंग चल रही है बाकी प्रॉपर्ली भी आप ऑपरेटर ओवरलोडिंग कर सकते हैं c+ के अंदर उसके अंदर ज्यादा हम डीप डाइव नहीं जाएंगे ये मैं आपको एज अ होमवर्क प्रॉब्लम दे रही हूं कि हमने कंस्ट्रक्टर ओवरलोडिंग देख लिया हमने फंक्शन ओवरलोडिंग देख लिया टू एग्जांपल्स आर सफिशिएंट फॉर कंपाइल टाइम पॉलीमोर्फस ज्म पर अगर आपको और ज्यादा डीप में जाके पढ़ना है तो यू कैन रीड अप मोर अबाउट ऑपरेटर ओवरलोडिंग इन c+ प जनरली अगर आप एक प्लस ऑपरेटर को या एक मल्टीप्लाई ऑपरेटर को किसी भी एक ऑपरेटर को ओवरलोड करके देख लोगे द कांसेप्ट विल बिकम रियली रियली क्लियर सेकंड टाइप ऑफ पॉलीमोर्फस ज्म होता है रन टाइम पॉलीमोर्फस ज्म रन टाइम पॉलीमोर्फस ज्म बेसिकली डायनेमिक पॉलीमोर्फस ज्म कहा जाता है इसको और यह रन टाइम पे इंप्लीमेंट होता है इसका सबसे क्लासिकल एग्जांपल है फंक्शन ओवरराइडिंग ओवरलोडिंग और ओवरराइडिंग दोनों में डिफरेंसेस कई बार पूछ लिए जाते हैं ओवरलोडिंग में क्या था एक ही क्लास के अंदर हम दो फंक्शंस बना रहे थे ओवरराइडिंग इज डिपेंडेंट अपॉन इन्हेरिटेंस ओवरराइडिंग जहां आ गया है वहां आपके दिमाग में आना चाहिए इन्हेरिटेंस ओवरराइडिंग का मतलब होता है जब पेरेंट और चाइल्ड बोथ कंटेन द सेम फंक्शन विद डिफरेंट इंप्लीमेंटेशंस इस बार पैरामीटर्स वगैरह सब कुछ सेम हो सकता है बस इंप्लीमेंटेशन डिफरेंट होनी चाहिए क्योंकि अब एक पेरेंट क्लास है एक चाइल्ड क्लास है यहां पे भी वही फंक्शन होगा यहां पे भी फंक्शन वही होगा तो डिपेंडिंग अपॉन आपने कौन सी क्ला की ऑब्जेक्ट बनाई है उसके बेसिस पर डिसाइड होगा कि कौन से वाला फंक्शन कॉल होना चाहिए और व रन टाइम पे डिसाइड होता है तो इस केस में हम कहते हैं जनरली हमारी जो पेरेंट क्लास होती है और हमारी चाइल्ड क्लास होती है तो जनरली अगर आप चाइल्ड क्लास की ऑब्जेक्ट बनाते हैं तो चाइल्ड क्लास का फंक्शन कॉल होता है और पेरेंट क्लास की ऑब्जेक्ट बनाते हैं तो पेरेंट क्लास का फंक्शन कॉल होता है तो इस केस में हम कहते हैं कि पेरेंट क्लास का जो फंक्शन है वो ओवर रेडन हो गया है पैरेंट क्लास के फंक्शन को चाइल्ड क्लास का फंक्शन ओवरराइड कर लेता है ओवरराइड करने का मतलब है इसकी ज्यादा प्रायोरिटी होती है चाइल्ड क्लास के लिए चाइल्ड क्लास के फंक्शन की ही ज्यादा प्रायोरिटी होती है इसका एग्जांपल देखते हैं लेट्स क्रिएट अ क्लास कॉल्ड पेरेंट यह तो हो गई पेरेंट क्लास लेट्स क्लियर दिस पैरेंट क्लास के अंदर एक लेट्स सपोज देयर इज अ फंक्शन कॉल्ड शो शो फंक्शन क्या करता है शो फंक्शन कुछ नहीं करता प्रिंट करवाता है पेरेंट क्लास एंड देयर इज अ क्लास कॉल्ड चाइल्ड क्लास या शो की जगह वी कैन कॉल इट गेट इंफो ये क्या करता है ये चाइल्ड क्लास पेरेंट क्लास को पब्लिकली इन्हेरिटेंस को पब्लिकली इन्हेरिटेंस के अंदर भी अपना एक गेट इंफो नाम का फंक्शन है और इसका जो गेट इंफो फंक्शन है वो चाइल्ड क्लास प्रिंट करवाता है अब हमने मेन फंक्शन के अंदर क्या किया मेन फंक्शन के अंदर चाइल्ड क्लास c1 की एक ऑब्जेक्ट बनाई और c1 के लिए फिर हमने गेट इंफो को कॉल किया तो c1 के लिए जब हम गेट इंफो को कॉल करते हैं यहां पर वॉइड एक्स्ट्रा ऐड कर लेते हैं दोनों फंक्शंस नेम के आगे तो c1 के लिए जब हम गेट इंफो को कॉल करते हैं तो हमारे पास प्रिंट हो जाता है चाइल्ड क्लास तो इस केस में क्या हो रहा है इस केस में चाइल्ड क्लास का यह जो फंक्शन है यह बेस क्लास के पैरेंट क्लास के इस फंक्शन को ओवरराइड करता है वहीं पर यहां पर अगर हम पेरेंट क्लास बनाते p1 और p1 के लिए गेट इंफो कॉल करते तो यहां पर क्या होता पेरेंट क्लास का गेट इंफो कॉल हो जाता तो इस तरीके से हम फंक्शन ओवरराइडिंग को इंप्लीमेंट करते हैं जब हमारी पेरेंट क्लास एंड चाइल्ड क्लास दोनों के पास सेम नाम का सेम ही फंक्शन होता है बट डिफरेंट इंप्लीमेंटेशन होती है अब रन टाइम पॉलीमोर्फस ज्म का ही एक और सेकंड एग्जांपल है हमारे वर्चुअल फंक्शंस कुछ स्पेशल फंक्शंस होते हैं जिनको हम वर्चुअल फंक्शन बना सकते हैं किसी भी फंक्शन के नाम के आगे अगर आपने वर्चुअल लिख दिया तो वो एक वर्चुअल फंक्शन बन जाएगा वर्चुअल फंक्शंस आर बेसिकली मेंबर फंक्शंस जिन्हें आप एक्सपेक्ट करते हो कि [संगीत] डिराइवर बनाने के लिए हम लिख सकते हैं वर्चुअल अब क्योंकि हमने इसे वर्चुअल बना दिया तो अब हमारी एक्सपेक्टेशन यह होगी कि चाइल्ड क्लास इसे री इंप्लीमेंट करें री इंप्लीमेंट करने के लिए कुछ नहीं करना हमें दोबारा से इस फंक्शन को लिख और चाइल्ड क्लास में इसको वर्चुअल की तरह नहीं लिखते और यहां लिख सकते हैं हेलो फ्रॉम चाइल्ड यह ऑलमोस्ट ओवरराइडिंग की तरह वर्क करता है जैसे यहां पर अब अगर हम चाइल्ड क्लास का एक ऑब्जेक्ट बनाएंगे और चाइल्ड क्लास के लिए c1 हेलो को कॉल करेंगे तो हमारा यह वाला फंक्शन कॉल होगा यहां पर आ जाएगा हेलो फ्रॉम चाइल्ड तो हमारे वर्चुअल फंक्शंस की कुछ कुछ प्रॉपर्टीज होती हैं वर्चुअल फंक्शंस आर एक तो डायनेमिक इन नेचर दे आर डिफाइंड बाय द कीवर्ड वर्चुअल इनसाइड अ बेस क्लास एंड दे आर ऑलवेज डिक्लेयर्ड विद अ बेस क्लास एंड ओवर रिडेन इन अ चाइल्ड क्लास बेस क्लास में ही वर्चुअल लिखते हैं चाइल्ड क्लास में नॉर्मली फंक्शन को लिखते हैं अ वर्चुअल फंक्शन इज कॉल्ड ड्यूरिंग रन टाइम कंपाइल टाइम में नहीं इसे रन टाइम में ही कॉल किया जाता है तो ये कुछ-कुछ स्पेशल प्रॉपर्टीज हैं जो वर्चुअल फंक्शंस के लिए हम याद रख सकते हैं तो यहां पर हमने अपने पॉलीमोर्फस ज्म को कंप्लीट कर लिया है हमने कंपाइल टाइम पॉलीमोर्फस ज्म देखा फंक्शन ओवरलोडिंग कंस्ट्रक्टर ओवरलोडिंग ऑपरेटर ओवरलोडिंग और हमने रन टाइम पॉलीमोर्फस ज्म देखा विद फंक्शन ओवरराइडिंग एंड वर्चुअल फंक्शन नेक्स्ट कांसेप्ट जिसे हम पढ़ने वाले हैं इसका नाम है एब्स्ट्रैक्ट्स क्शन के कोड हम ऑलरेडी लिख चुके हैं बस हमें अब पता चलेगा कि अच्छा जो कोड हमने लिख लिया वह एब्स्ट्रैक्टर क्या एब्स्ट्रैक्टर अननेसेसरी डिटेल्स एंड शोइंग ओनली द इंपॉर्टेंट पार्ट्स एब्स्ट्रैक्टर का सबसे आसान तरीका होते हैं हमारे एक्सेस मोडिफाय एक्सेस मॉडिफाई है नेसेसरी डिटेल या सेंसिटिव डिटेल जिसको हमें हाइड करना है उसे तो हम प्राइवेट बना देते हैं और जो इंपॉर्टेंट चीजें हैं जिनको हम दिखाना चाहते हैं उन्हें हम पब्लिक बना देते हैं और जो प्राइवेट रखना चाहते हैं पर जिन्हें इन्हेरिटेंस क्टेड बना देते हैं तो एक्सेस मॉडिफाइड एब्स्ट्रेक्शन जब हम किसी भी क्लास के अंदर एक्सेस एब्स्ट्रैक्ट्स मेंट कर रहे हैं एब्स्ट्रैक्टर सिर्फ सेंसिटिव इंफॉर्मेशन को हाइड करना नहीं होता उसका मतलब यह भी होता है कि इंपॉर्टेंट चीजें दिख भी रही हो तो जैसे हमने पहले एक टर्म पढ़ी थी डेटा हाइडिंट हाइडिल हम प्राइवेट को यूज़ करते हैं तो डेटा हाइडिंट क्शन में डिफरेंस क्या है कि डेटा हाइडिल हाइड करता है एब्स्ट्रैक्टर भी करता है और इंपॉर्टेंट चीजों को दिखाता भी है तो एक्सेस मॉडिफाई इनको बोल सकते हैं दे आर अ वे ऑफ इंप्लीमेंटिंग एब्स्ट्रेक्शन देयर इज आल्सो वन मोर वे ऑफ इंप्लीमेंटिंग एब्स्ट्रैक्टर हमारी एब्स्ट्रैक्ट्स हमारी कोई भी अगर हमने क्लास लिखी है ना इस तरीके से लेट्स सपोज क्लास ए तो उसके आगे अगर हम एब्स्ट्रैक्टर लिख देते हैं तो ये एक एब्स्ट्रेक्ट क्लास बन जाती है अब एब्स्ट्रेक्ट क्लास क्या होती है एब्स्ट्रैक्टिंग के अंदर मतलब होता है ख्याल तो ये एक ऐसी क्लास है जो बस एक ख्याल है ख्याल कहने का मतलब है क्लास का असली काम होता है ऑब्जेक्ट्स को क्रिएट करना पर एब्स्ट्रैक्ट्स कभी कोई ऑब्जेक्ट क्रिएट नहीं करती यह क्लास क्या करती है यह क्लास दूसरी क्लासेस का ब्लूप्रिंट बनती है जैसे फॉर एग्जांपल एक नॉर्मल क्लास क्या होती है नॉर्मल क्लास से डिफरेंट डिफरेंट ऑब्जेक्ट्स क्रिएट होती हैं यह ऑब्जेक्ट टू हो गई यह ऑब्जेक्ट थ्री हो गई तो क्लास क्या करती है एक ब्लूप्रिंट बनती है यह बताती है कोड को कि ऑब्जेक्ट्स कैसी दिखनी चाहिए उनके अंदर क्या प्रॉपर्टीज होनी चाहिए क्या मेंबर फंक्शन होने चाहिए और एक एब्स्ट्रेक्ट क्लास क्या करती है एक एब्स्ट्रैक्ट्स सिर्फ इन्हेरिटेंस के लिए बनाई जाती है और इसकी कोई ऑब्जेक्ट नहीं होती यह बस बताती है कि दूसरी क्लासेस कैसी होनी चाहिए ये जो क्लासेस हैं जो एब्स्ट्रैक्ट्स को इन्हेरिटेंस होनी चाहिए कौन-कौन से फंक्शंस इनके अंदर इंप्लीमेंट होने चाहिए तो एब्स्ट्रैक्ट्स इज लाइक अ ब्लूप्रिंट फॉर अदर क्लासेस दैट आर गोइंग टू इंप्लीमेंट इट तो एब्स्ट्रेक्ट क्लास की कुछ-कुछ प्रॉपर्टीज होती हैं एब्स्ट्रैक्ट्स आर यूज्ड टू प्रोवाइड अ बेस क्लास फ्रॉम व्हिच अदर क्लासेस कैन बी डराइड एक बेस क्लास बन जाती है एब्स्ट्रेक्ट क्लास जिससे सिर्फ इन्हेरिटेंस हो रहा होता है डिराइवर क्लासेस का दे कैन नॉट बी इंस्टेंशिएट इंस्टेंशिएट का मतलब है उनकी ऑब्जेक्ट्स नहीं बन सकती ऑब्जेक्ट्स को ही टेक्निकल टर्म में हम इंस्टेंस कहते हैं इंस्टेंस शब्द जहां भी दिखे ऊप्स के अंदर उसका मतलब हम ऑब्जेक्ट कहना चाह रहे हैं एंड दीज क्लासेस आर मेंट टू बी इन्हेरिटेंस फॉर डिराइवर बली एक लेआउट एक इंटरफेस एक टेंप्लेट एक ब्लूप्रिंट डिफाइन करने के लिए यूज होती है एब्स्ट्रेक्ट क्लास जैसे फॉर एग्जांपल हमने एक क्लास बनाई शेप अब शेप को हम चाहे तो हर शेप को ड्रा करना पॉसिबल होना चाहिए पर जब तक हमें पता ही नहीं कि हमारी शेप है कौन सी कि हमें सर्कल ड्रॉ करना है या हमें स्क्वायर ड्र करना है या हमें रेक्टेंगल ड्र करना है या हमें ट्रायंगल ड्रा करना है क्या हम किसी भी शेप को ड्रॉ कर पाएंगे क्योंकि शेप तो कुछ भी हो सकती है तो अगर हमने कोई शेप क्लास बनाई है तो इसका जो ड्रॉ फंक्शन है वो एगजैक्टली हम इंप्लीमेंट नहीं कर सकते तो हमें क्या करना पड़ेगा हमें एक दूसरी क्लास बनानी पड़ेगी लेट्स सपोज हमने सर्कल क्लास बनाई जो इस शेप क्लास को इन्हेरिटेंस इस सर्कल के अंदर इसका ये जो ड्रॉ मेथड था इसको हम री इंप्लीमेंट करें टू ड्रॉ अ सर्कल तो अगर हमारे पास सर्कल क्लास होगी तो हमें क्लीयरली पता होगा कि हमें सर्कल ड्रॉ करना है तो यह जो हमारी शेप क्लास है तो हम ऐसे ही शेप की कोई ऑब्जेक्ट तो बना नहीं सकते हम सर्कल बना सकते हैं हम स्क्वायर बना सकते हैं हम रेक्टेंगल बना सकते हैं तो शेप को हम क्या बना देंगे शेप को हम एब्स्ट्रैक्टर हैं कि शेप एक आईडिया है कि चाहे आप सर्कल की क्लास बनाओ चाहे आप स्क्वायर की क्लास बनाओ चाहे आप रेक्टेंगल की क्लास बनाओ सारी क्लासेस में ड्रॉ फंक्शन होना चाहिए इसका हम कोड भी देख सकते हैं तो ये हमने अपनी क्लास बना दी है शेप अब शेप क्लास के अंदर हमें बताना पड़ेगा इस क्लास के अंदर क्या-क्या फंक्शन होने चाहिए तो इसके अंदर एक ड्रॉ नाम का फंक्शन होना चाहिए पर हम ड्रॉ को यहां पे इंप्लीमेंट नहीं करना चाहते क्योंकि किसी शेप को तो हम ड्रॉ कर नहीं सकते हम सर्कल को ड्रॉ कर सकते हैं स्क्वेयर को कर सकते हैं रैंडम शेप को ड्रॉ नहीं कर सकते तो हम क्या करते हैं हम इस फंक्शन को बना देते हैं वर्चुअल एंड हम इसे वैल्यू असाइन कर देते हैं रो इस लाइन का मतलब यह है कि हम शेप क्लास की जितनी भी चाइल्ड क्लासेस होंगी उन सबके अंदर ड्रॉ नाम का एक फंक्शन इंप्लीमेंटेड होना चाहिए तो उसका हमने क्या किया यहां पे टेंप्लेट बता दिया यहां पे ब्लूप्रिंट बता दिया और यह जो फंक्शन है इसे हम प्योर वर्चुअल फंक्शन भी कहते हैं प्योर वर्चुअल फंक्शन इसे हम कहते हैं जिसकी वैल्यू असाइन हो जाती है जीरो और इसके साथ कीवर्ड होता है वर्चुअल और जिस भी क्लास के अंदर प्योर वर्चुअल फंक्शन आ जाता है वो क्या बन जाती है वो ऑटोमेटिक एक एब्स्ट्रैक्टर बन जाती है अब ये क्लास ऑटोमेटिक एक एब्स्ट्रैक्ट्स बन गई है मतलब अगर इस शेप क्लास की हम एक ऑब्जेक्ट बनाने निकलेंगे तो हमारे पास एरर आएगा क्या एरर आएगा वेरिएबल टाइप शेप इज एन एब्स्ट्रैक्ट्स क्ट क्लास की ऑब्जेक्ट्स नहीं बना सकते तो शेप की ऑब्जेक्ट नहीं बना सकते पर शेप को दूसरी क्लासेस से इन्हेरिटेंस मोड में इन्हेरिटेंस तो यहां पर अब हम सर्कल की एक ऑब्जेक्ट बना लेंगे c1 एंड c1 से कॉल कर देंगे अपने ड्रॉ फंक्शन को लेट्स पुट टू सेमीकलन हियर तो ड्राइंग सर्कल हमारे पास प्रिंट हो गया आकर इसी तरीके से कल को अगर हम चाहें तो स्क्वेयर क्लास भी बना सकते हैं रेक्टेंगल क्लास भी बना सकते हैं सबके अंदर स्क्वायर ड्रॉ कर सकते हैं रेक्टेंगल ड्रॉ कर सकते हैं पर इस क्लास के ऑब्जेक्ट नहीं बना सकते क्योंकि एब्स्ट्रैक्ट्स का काम है सिर्फ एक आईडिया देना इसका काम है कि ये सिर्फ ब्लूप्रिंट दे रही है कि कौन सी चीजें हमारी बेस क्लास के अंदर होनी चाहिए और कौन सी चीजें हमारी बेस क्लास के अंदर नहीं होनी चाहिए एंड लास्ट इंपॉर्टेंट कांसेप्ट जिसके बारे में अब हम बात करने वाले हैं ये है स्टैटिक कीवर्ड स्टैटिक एक काफी इंपॉर्टेंट कीवर्ड होता है जो c+ प् उप्स के अंदर यूज होता बारबार यूज हो रहा होता है स्टैटिक को हम दो तरीके से यूज कर सकते हैं या तो इसे हम वेरिएबल के साथ यूज कर सकते हैं या फिर हम अपनी ऑब्जेक्ट को स्टैटिक बना सकते हैं कोई भी वेरिएबल अगर फंक्शन के अंदर स्टैटिक बनता है तो उस फंक्शन के लिए वह वेरिएबल एक ही बार क्रिएट होता है और एक ही बार इनिला होता है फॉर द लाइफ टाइम ऑफ द प्रोग्राम फॉर एग्जांपल लेट्स क्रिएट अ सिंपल फंक्शन वॉइड फंक वॉइड फंक अंदर हम क्या करेंगे अपने नॉर्मल फंक्शन या इसे फन कह देते हैं नॉर्मल फंक्शन फन के अंदर हमने एक इंटी जर बनाया x = 2 और हम हर बार क्या कर रहे हैं य x = 0 कर लेते हैं और हम हर बार सी आउट कर रहे हैं x को और फिर x को कर रहे हैं प्लस प्लस तो यहां पर कर देते हैं कि x की वैल्यू अभी क्या है उस चीज को हम सी आउट कर रहे हैं अब फन को अगर हम एक बार कॉल करें तो हमारे पास क्या प्रिंट होगा x 0 है तो x की वैल्यू भी क्या होगी जीरो ही होगी फिर वो वन हो जाएगा पर फिर इस फंक्शन से हम बाहर निकल जाएंगे तो हमारे पास जीरो प्रिंट हो जाएगा ये जीरो आ गया हम दोबारा अगर इस फंक्शन को कॉल करें या लेट्स सपोज हमने इस फंक्शन को कॉल किया थ्री टाइम्स एक बार कॉल किया तीन बार कॉल किया तो हर बार आउटपुट सेम ही आएगा जीरो ही आएगा क्योंकि जैसे जैसे हम फंक्शन को कॉल कर रहे हैं वैसे ही क्या हो रहा है हमारा कॉल स्टैक जो होता है उसके अंदर हमारा फन फंक्शन आ रहा है उसके लिए एक्स वेरिएबल क्रिएट हो रहा है जीरो फिर वो दोबारा डिलीट हो रहा है फिर दोबारा उसको कॉल कर रहे हैं फन फंक्शन x = 0 फिर दोबारा डिलीट हो रहा है फिर दोबारा कॉल स्टैक के अंदर फन x = 0 इस तरीके से चीजें हो रही हैं पर जब भी हम इस इंटी जर x को स्टैटिक बना देते हैं विद द स्टैटिक कीवर्ड तो एक मैजिकल चीज होती है क्या मैजिकल चीज होती है अब ये x यहां पे क्रिएट नहीं हो रहा ये x अलग से क्रिएट हो रहा है और अब चाहे ये फंक्शन कॉल यहां से हट जाए पर ये x मेमोरी के अंदर रहेगा और आप दोबारा अगर फंक्शन को कॉल लगाएंगे तो इस बार इस x के अंदर + 1 होके वैल्यू वन हो जाएगी इस x के अंदर प्लस प्लस होके वैल्यू टू हो जाएगी तो इस तरीके से अब इसकी वैल्यूज बढ़ती रहेंगी यह वाली जो अब स्टेटमेंट है पहले तो क्या हो रहा था हर फंक्शन कॉल के साथ यह वाला जो स्टेटमेंट है यह बार-बार रन हो रहा था इस बार यह इनिश इजेशन इनिश इजेशन वाली जो स्टेटमेंट है यह एक ही बार रन करेगी और बाकी सारा कोड बार-बार रन करेगा तो एक बार मेमोरी के अंदर x = 0 क्रिएट हो गया को कॉल किया तो x की रो वैल्यू हो गई फिर x को प्लस प्लस करके हमने वन कर दिया फिर दोबारा फन को कॉल किया फिर x को प्रिंट करवाया तो वह वन प्रिंट हो गया फिर टू हो गया फिर दोबारा फन को कॉल किया फिर x को प्रिंट करवाया तो वोह टू प्रिंट हो जाएगा और उसकी वैल्यू इंटरनली थी हो जाएगी तो इसको हम होते हुए भी देख सकते हैं x = 0 x = 1 2 क्योंकि इस बार x बार-बार डिस्ट्रॉय नहीं हो रहा इस बार x एक बार बन गया तो वह तब तक लाइफ टाइम ऑफ द प्रोग्राम तक मेमोरी के अंदर पर्सिस करता है और स्टैटिक वेरिएबल अगर हम क्लास के अंदर किसी वेरिएबल को स्टैटिक बना देते हैं तो दे आर शेयर्ड बाय ऑल ऑफ द ऑब्जेक्ट्स ऑफ द क्लास अभी के लिए तो लेट्स सपोज अगर हमने क्लास बनाई है ए क्लास ए के अंदर अभी अगर हम कोई वेरिएबल बनाते हैं इंट एकस और इसके अंदर फंक्शन बनाते हैं इंक्रीमेंट x इंक्रीमेंट x क्या करता है एक की वैल्यू इंक्रीज कर देता है बाय यह करता है इंक्रीमेंट एक्स तो ए क्लास का अगर हम कोई ऑब्जेक्ट बनाए य ऑब्जेक्ट क्या कर रहा है यह ऑब्जेक्ट से हम सी आउट कर रहे हैं अपने एक्स की वैल्यू को तो लेटस सी आउट ऑब्जेक्ट डॉट एक्स फिर हमने ऑब्जेक्ट के लिए कॉल किया इंक्रीमेंट एक्स को और दोबारा सी आउट कर द एक्स की वैल्यू तो हमारे एक्स की वैल्यू नॉर्मली अपडेट हो जाएगी एकस की वैल्यू जीरो होगी फिर वन होगी तो इस तरीके से अपडेट हो जाएगी ओके वी हैव टू इनिश इज इट विथ जीरो तो ऑब्जेक्ट डॉट एक्स की गार्बेज वैल्यू है अभी इसको जीरो से इनिला कर देंगे तो पहले वो जीरो प्रिंट हो जाएगी फिर वो इंक्रीज हो जाएगी फिर वो वन प्रिंट हो जाएगी अब यहां पर ए की ऑब्जेक्ट वन के साथ हमने क्या किया एक ऑब्जेक्ट टू भी क्रिएट कर दिया यहीं पर ए का ऑब्जेक्ट टू हम क्रिएट कर देते हैं और हम क्या कर रहे हैं ऑब्जेक्ट वन के लिए हमने x की वैल्यू रख दि 100 एंड ऑब्जेक्ट टू के लिए हम x की वैल्यू रख रहे हैं 200 तो जब हम ऑब्जेक्ट टू के लिए x प्रिंट करवाएंगे हमारे पास 200 प्रिंट होना चाहिए नॉर्मली यहां पे ऑब्जेक्ट टू के लिए हमारे पास वैल्यू प्रिंट होनी चाहिए 200 ऑब्जेक्ट वन की वैल्यू प्रिंट करवाएंगे वो प्रिंट होनी चाहिए 100 के इक्वल तो इस तरीके से नॉर्मल चीजें चलेंगी तो नॉर्मली जितने भी हमारे प्रॉपर्टीज होती हैं अगर हमने एक ऑब्जेक्ट बनाई ऑब्जेक्ट वन तो इसके लिए x अलग से बनेगा अगर हमने बनाई ऑब्जेक्ट टू तो इसका x अलग से बनेगा पर अगर उसी x के आगे हम स्टैटिक लगा लेते तो सारी की सारी ऑब्जेक्ट्स के लिए एक ही x क्रिएट होता यानी x क्या करता x एक अलग वेरिएबल होता जो अलग से क्रिएट होता और सारी ऑब्जेक्ट्स उस x को शेयर करती तो जब भी हम x के अंदर कुछ अपडेशंस करते 100 का 200 बनाते 200 का 100 बनाते तो वह सारी ऑब्जेक्ट्स के अंदर रिफ्लेक्ट करता जिन भी ऑब्जेक्ट्स को बेसिकली कोड के अंदर हम स्टैटिक बनाते हैं वह लाइफ टाइम ऑफ़ द प्रोग्राम तक एजिस्ट करती है तो जनरली जो ऑब्जेक्ट होती है वह अपने स्कोप के हिसाब से एजिस्ट करती है कि यहां पर मेरी ऑब्जेक्ट है तो यह यहीं तक रहेगी फॉर एग्जांपल लेट्स क्रिएट अ क्लास कॉल्ड एबीसी एबीसी क्लास के अंदर एक हमारा कंस्ट्रक्टर है एक हमारा डिस्ट्रक्टर है तो एक हो गया हमारे पास ए बी सी सी आउट कर देते हैं कंस्ट्रक्टर एंड इसी से एक यहां पर आ गया हमारे पास डिस्ट्रक्टर अब अगर ए बी सी क्लास की हम एक ऑब्जेक्ट बनाते हैं ऑब्जेक्ट को कहां बनाया इस ऑब्जेक्ट को यहां बनाने की जगह हम क्या करेंगे इफ ट्रू तो इस ऑब्जेक्ट को हम यहां क्रिएट करते हैं ए बी सी क्लास की एक ऑब्जेक्ट को हमने यहां क्रिएट किया तो अभी नॉर्मली क्या होगा यहां पर ऑब्जेक्ट क्रिएट होगी फिर सी आउट करेंगे हम एंड ऑफ मेन फंक्शन तो इफ ब्लॉक के अंदर अगर ऑब्जेक्ट क्रिएट होती है तो जैसे ही हम इफ ब्लॉक से बाहर निकलने जाएंगे हमारी ऑब्जेक्ट डिलीट भी हो जाएगी तो पहले ऑब्जेक्ट कंस्ट्रक्ट हो रही फिर डिस्ट्रक्टर को कॉल की जाएगी तो ऑब्जेक्ट डिस्ट्रक्ट भी हो जाएगी फिर हमारा मेन फंक्शन एंड करेगा तो नॉर्मल केसेस में इस तरीके से हमारा कोड वर्क करता है लेट्स सेव इट एंड रन तो नॉर्मल केसेस में पहले कंस्ट्रक्टर आया फिर डिस्ट्रक्टर आया फिर एंड ऑफ मेन फंक्शन लेकिन अगर हम यहां पर इस ऑब्जेक्ट को क्रिएट करते हैं विद द स्टैटिक कीवर्ड उस केस में क्या होगा उस केस में पहले कंस्ट्रक्टर आया फिर मेन फंक्शन खत्म हुआ फिर हमारे डिस्ट्रक्टर को कॉल गई मतलब जो भी ऑब्जेक्ट आप स्टैटिक कीवर्ड के साथ क्रिएट करेंगे वह लाइफ टाइम ऑफ द प्रोग्राम तक चलेगी और जब तक हमारा मेन फंक्शन यानी प्रोग्राम पूरा खत्म नहीं हो जाता तब तक वह हमारी मेमोरी के अंदर पर्सिस करेगी तो इस तरीके से हमारे स्टैटिक कीवर्ड का यूसेज होता है इन थ्री डिफरेंट कंडीशंस इसके अलावा अगर आप और डीप में जानना चाहते हैं यू वांट टू एक्सप्लोर मोर कांसेप्ट इन ूब्स तो देयर इज आल्सो दिस कांसेप्ट ऑफ फ्रेंड फंक्शन एंड फ्रेंड क्लास जिसको आप एज अ होमवर्क प्रॉब्लम जाकर पढ़ सकते हैं वैसे जनरली फ्रेंड फंक्शन फ्रेंड क्लास उतने ज्यादा इंटरव्यूज के अंदर नहीं पूछा जाता एंड जनरली इट बिकम अ स्लाइटली डिफिकल्ट टॉपिक टू अंडरस्टैंड फॉर सम स्टूडेंट्स तो इसीलिए इसको हम कवर नहीं कर रहे क्योंकि इंटरव्यू पॉइंट ऑफ व्यू से उतनी ज्यादा कंपनीज इसे नहीं पूछती हैं पर आप डेफिनेटली अगर आपका इंटरेस्ट आ रहा है उप्स के अंदर तो इसको जाकर डेफिनेटली एक बार पढ़ सकते हैं एंड इसको सीख सकते हैं तो उससे हमारी अंडरस्टैंडिंग भी बनी रहेगी उप्स के अंदर तो आई होप कि आज का जो हमारा पूरा का पूरा लेक्चर था पूरा का पूरा वन शॉट था इसमें ऊप्स के बारे में हमने बहुत सारे डिफरेंट कांसेप्ट सीखे हमने बहुत सारी नई चीजें सीखी जो भी आपको बेस्ट पार्ट लगा यू कैन लेट मी नो कि दिस वाज द बेस्ट पार्ट एंड दिस वाज द टाइम व्हेन वी गॉट टू लर्न समथिंग न्यू तो वो चीज आई थिंक एज अ टीचर सभी को अच्छी लगती है इसके साथ में जितने भी एमसी क्यूज हैं इस पूरे चैप्टर पर बेस्ड जितने भी उप्स के एमसी क्यूज हैं उन्हें जाकर अब हमें सॉल्व कर लेना है सारी चीजों के प्रॉपर्ली नोट्स बनाने हैं डेफिनेशंस को याद रखना है एग्जाम आप याद रख सकते हैं नहीं तो खुद के एग्जांपल्स भी क्रिएट कर सकते हैं इंटरव्यूज के लिए अगर जितना ऊप्स हमने अभी कवर किया है उतना आप अच्छे से कवर कर लेते हैं तो आप कंप्लीट तैयार हैं उप्स के इंटरव्यूज के लिए इतने ही कांसेप्ट के साथ हमारी मेजॉरिटी ऑफ द क्वेश्चंस कवर हो जाएंगे बस हर कांसेप्ट आपको अच्छे से समझ में आना चाहिए तो आई होप कि आज के लेक्चर में हमें बहुत सारी नई चीजें सीखने को मिली हो बहुत सारी अच्छी लर्निंग हमारी रही हो जिसको हम इंप्लीमेंट करेंगे एंड ऑल द बेस्ट फॉर योर इंटर्नशिप एज वेल एज प्लेसमेंट इंटरव्यूज तो आज के लिए इतना ही मिलते हैं नेक्स्ट लेक्चर के अंदर टिल देन कीप लर्निंग एंड कीप flingster.com