दिस (THIS कंप्यूटर प्रोग्रामिंग)

यह, स्वयं, और मी आरक्षित शब्द हैं जिनका उपयोग कुछ कंप्यूटर प्रोग्रामिंग भाषाओं में ऑब्जेक्ट, क्लास या अन्य इकाई को संदर्भित करने के लिए किया जाता है जिसका वर्तमान में चल रहा कोड एक हिस्सा है। इन कीवर्ड द्वारा संदर्भित इकाई इस प्रकार निष्पादन संदर्भ पर निर्भर करती है (जैसे कि किस ऑब्जेक्ट की विधि कहलाती है)। अलग-अलग प्रोग्रामिंग भाषाएं इन कीवर्ड का उपयोग थोड़े अलग तरीके से करती हैं। उन भाषाओं में जहां इस तरह का कीवर्ड अनिवार्य है, कीवर्ड वर्तमान ऑब्जेक्ट में संग्रहीत डेटा और विधियों तक पहुंचने का एकमात्र तरीका है। जहां वैकल्पिक हो, वे एक ही नाम से वेरिएबल और फ़ंक्शंस को स्पष्ट कर सकते हैं।

वस्तु-उन्मुख प्रोग्रामिंग
कई ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग |ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषाओं में,   (यह भी कहा जाता है   या  ) एक वेरिएबल है जिसका उपयोग इंस्टेंस विधियों में उस ऑब्जेक्ट को संदर्भित करने के लिए किया जाता है जिस पर वे काम कर रहे हैं। पहली OO भाषा,  शुरुआत, का उपयोग किया गया   स्थानीय वस्तु को स्पष्ट रूप से संदर्भित करने के लिए।  C++ और इससे शैली में व्युत्पन्न भाषाएं (जैसे जावा (प्रोग्रामिंग भाषा), सी शार्प (प्रोग्रामिंग भाषा)|सी#, डी (प्रोग्रामिंग भाषा), और पीएचपी) भी आम तौर पर उपयोग की जाती हैं. स्मॉलटॉक और अन्य, जैसे ऑब्जेक्ट पास्कल, पर्ल, पायथन (प्रोग्रामिंग भाषा), रूबी (प्रोग्रामिंग भाषा), रस्ट (प्रोग्रामिंग भाषा), उद्देश्य सी, डेटाफ्लेक्स और स्विफ्ट (प्रोग्रामिंग भाषा), उपयोग करें. माइक्रोसॉफ्ट के मूल दृश्य का उपयोग करता है.

यह अवधारणा सभी भाषाओं में समान है:  आमतौर पर एक अपरिवर्तनीय संदर्भ (कंप्यूटर विज्ञान) या  सूचक (कंप्यूटर प्रोग्रामिंग)  है जो वर्तमान वस्तु को संदर्भित करता है; वर्तमान ऑब्जेक्ट अक्सर वह कोड होता है जो  संपत्ति (प्रोग्रामिंग),  विधि (कंप्यूटर प्रोग्रामिंग) , सब-रूटीन या फ़ंक्शन के लिए 'पैरेंट' या 'इनवॉकेंट' के रूप में कार्य करता है जिसमें शामिल होता है   कीवर्ड. किसी वस्तु के ठीक से निर्माण या त्वरितीकरण के बाद,  हमेशा एक वैध संदर्भ होता है. कुछ भाषाओं को स्पष्ट रूप से इसकी आवश्यकता होती है; अन्य लोग अपने वर्ग के प्रतीकों को दृश्यमान बनाने के लिए इसका अंतर्निहित रूप से उपयोग करने के लिए शाब्दिक दायरा  का उपयोग करते हैं। या वैकल्पिक रूप से, वर्तमान वस्तु द्वारा संदर्भित   एक स्वतंत्र कोड ऑब्जेक्ट हो सकता है जिसने कीवर्ड वाले फ़ंक्शन या विधि को कॉल किया हो. ऐसी बात होती है, उदाहरण के लिए, जब किसी वेब पेज में HTML टैग से जुड़ा जावास्क्रिप्ट ईवेंट हैंडलर कीवर्ड वाले फ़ंक्शन को कॉल करता है  दस्तावेज़ ऑब्जेक्ट के बाहर वैश्विक स्थान में संग्रहीत; उस संदर्भ में,   दस्तावेज़ ऑब्जेक्ट के भीतर पृष्ठ तत्व को संदर्भित करेगा, संलग्न विंडो ऑब्जेक्ट को नहीं। कुछ भाषाओं में, उदाहरण के लिए C++, Java और Raku  या   एक कीवर्ड (कंप्यूटर प्रोग्रामिंग) है, और वेरिएबल स्वचालित रूप से इंस्टेंस विधियों में मौजूद होता है। दूसरों में, उदाहरण के लिए पायथन, रस्ट और पर्ल 5 में, इंस्टेंस विधि का पहला पैरामीटर एक ऐसा संदर्भ है। इसे स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता है। पायथन और पर्ल में, पैरामीटर को आवश्यक रूप से नाम देने की आवश्यकता नहीं है   या  ; इसे किसी अन्य पैरामीटर की तरह प्रोग्रामर द्वारा स्वतंत्र रूप से नामित किया जा सकता है। हालाँकि, अनौपचारिक परंपरा के अनुसार, पर्ल या पायथन में इंस्टेंस विधि के पहले पैरामीटर का नाम दिया जाता है. जंग के लिए स्वयं वस्तु को बुलाए जाने की आवश्यकता होती है  या , इस पर निर्भर करता है कि क्या आह्वान किया गया फ़ंक्शन आह्वानकर्ता को उधार लेता है, या उसे क्रमशः अंदर ले जाता है।

C++ या Java में स्टेटिक विधियाँ उदाहरणों से नहीं बल्कि कक्षाओं से संबद्ध हैं, और इसलिए उनका उपयोग नहीं किया जा सकता है, क्योंकि कोई वस्तु नहीं है। अन्य भाषाओं में, जैसे रूबी, स्मॉलटॉक, ऑब्जेक्टिव-सी, या स्विफ्ट, विधि एक क्लास ऑब्जेक्ट से जुड़ी होती है जिसे इस प्रकार पारित किया जाता है  , और उन्हें क्लास विधियाँ कहा जाता है। क्लास विधियों के लिए, पायथन का उपयोग किया जाता है   क्लास ऑब्जेक्ट तक पहुंचने के लिए।

बारीकियाँ और कठिनाइयाँ
जब अनुमान लगाने के लिए लेक्सिकल स्कोपिंग का उपयोग किया जाता है, का उपयोग   कोड में, हालांकि यह अवैध नहीं है, यह रखरखाव प्रोग्रामर के लिए चेतावनी की घंटी बजा सकता है, हालांकि इसके अभी भी वैध उपयोग हैं   इस मामले में, जैसे कि एक ही नाम के स्थानीय चर द्वारा छिपे हुए उदाहरण चर का संदर्भ देना, या यदि विधि वर्तमान ऑब्जेक्ट का संदर्भ वापस करना चाहती है, यानी।  , अपने आप।

कुछ कंपाइलर्स (उदाहरण के लिए जीएनयू कंपाइलर संग्रह) में, C++ इंस्टेंस विधियों के पॉइंटर्स को स्पष्ट रूप से किसी अन्य प्रकार के पॉइंटर पर सीधे डाला जा सकता है  सूचक पैरामीटर.

खुला प्रत्यावर्तन
का प्रेषण शब्दार्थ, अर्थात् वह विधि चालू रहती है   गतिशील रूप से प्रेषित होते हैं, इसे ओपन रिकर्सन के रूप में जाना जाता है, और इसका मतलब है कि ये विधियां व्युत्पन्न कक्षाओं या ऑब्जेक्ट्स द्वारा ओवरराइडिंग की जा सकती हैं। इसके विपरीत, किसी फ़ंक्शन का प्रत्यक्ष नामित रिकर्सन या अज्ञात रिकर्सन प्रारंभिक बाइंडिंग के साथ बंद रिकर्सन का उपयोग करता है। उदाहरण के लिए, फैक्टोरियल के लिए निम्नलिखित पर्ल कोड में, टोकन   वर्तमान फ़ंक्शन का संदर्भ है: इसके विपरीत, C++ में (स्पष्ट का उपयोग करके  स्पष्टता के लिए, हालांकि आवश्यक नहीं)   ऑब्जेक्ट से ही जुड़ जाता है, लेकिन यदि क्लास विधि को आधार में वर्चुअल यानी बहुरूपी घोषित किया गया था, तो इसे डायनेमिक डिस्पैच (देर देर से बंधन) के माध्यम से हल किया जाता है ताकि व्युत्पन्न कक्षाएं इसे ओवरराइड कर सकें। यह उदाहरण कृत्रिम है, क्योंकि यह प्रत्यक्ष प्रत्यावर्तन है, इसलिए ओवरराइडिंग है  विधि इस फ़ंक्शन को ओवरराइड कर देगी; अधिक प्राकृतिक उदाहरण तब होते हैं जब व्युत्पन्न वर्ग में एक विधि बेस क्लास में या पारस्परिक पुनरावृत्ति के मामलों में उसी विधि को कॉल करती है। कमजोर बेस क्लास समस्या के लिए ओपन रिकर्सन को दोषी ठहराया गया है, जिसमें सुझाव दिया गया है कि तरीकों को लागू किया जाए  खुले रिकर्सन (गतिशील प्रेषण, देर से बाइंडिंग) के बजाय बंद रिकर्सन (स्थैतिक प्रेषण, प्रारंभिक बाइंडिंग) के लिए डिफ़ॉल्ट, विशेष रूप से अनुरोध किए जाने पर केवल खुले रिकर्सन का उपयोग करना; बाहरी कॉल (उपयोग नहीं कर रहे हैं  ) हमेशा की तरह गतिशील रूप से भेजा जाएगा।  जिस तरह से इसे जेडीके में व्यवहार में हल किया जाता है वह एक निश्चित प्रोग्रामर अनुशासन के माध्यम से होता है; इस अनुशासन को सी. रूबी और जी. टी. लीवेन्स द्वारा औपचारिक रूप दिया गया है; इसमें मूल रूप से निम्नलिखित नियम शामिल हैं:
 * कोई कोड लागू नहीं होता  तरीकों पर.
 * कोड जिसे आंतरिक रूप से पुन: उपयोग किया जा सकता है (उसी वर्ग के अन्य तरीकों से आह्वान करके) एक में समाहित किया गया है  या   तरीका; यदि इसे सीधे उपयोगकर्ताओं के सामने प्रदर्शित करने की आवश्यकता है, तो एक आवरण   विधि आंतरिक विधि को कॉल करती है।
 * शुद्ध कार्य विधियों के लिए पिछली अनुशंसा में ढील दी जा सकती है।

सी++
C++ के शुरुआती संस्करण इसकी अनुमति देंगे  सूचक बदला जाए; ऐसा करने से एक प्रोग्रामर यह बदल सकता है कि कोई विधि किस ऑब्जेक्ट पर काम कर रही है। यह सुविधा अंततः हटा दी गई, और अब   C++ में एक वैल्यू (कंप्यूटर साइंस)#असाइनमेंट है: एल-वैल्यू और आर-वैल्यू|आर-वैल्यू। C++ के शुरुआती संस्करणों में संदर्भ शामिल नहीं थे और यह सुझाव दिया गया है कि यदि शुरुआत से ही C++ में ऐसा होता,  एक संदर्भ होता, सूचक नहीं। C++ वस्तुओं को स्रोत कोड कथन के साथ स्वयं को नष्ट करने देता है:.

सी#
कीवर्ड  सी शार्प (प्रोग्रामिंग भाषा) में|सी# संदर्भ प्रकारों के लिए जावा की तरह ही काम करता है। हालाँकि, C# मान प्रकारों के भीतर,   एक सामान्य परिवर्तनीय चर संदर्भ के समान होने के कारण, इसमें काफी भिन्न शब्दार्थ हैं, और यह किसी असाइनमेंट के बाईं ओर भी हो सकता है।

का एक प्रयोग  C# में एक विधि के भीतर एक बाहरी फ़ील्ड वैरिएबल के संदर्भ की अनुमति देना है जिसमें एक स्थानीय वैरिएबल होता है जिसका नाम समान होता है। ऐसी स्थिति में, उदाहरण के लिए, कथन   विधि के भीतर स्थानीय चर का प्रकार और मान निर्दिष्ट किया जाएगा   को , जबकि कथन   बाहरी फ़ील्ड वैरिएबल का प्रकार और मान निर्दिष्ट करेगा.

डी
डी में (प्रोग्रामिंग भाषा)  किसी वर्ग, संरचना या संघ विधि में संलग्न समुच्चय के उदाहरण के अपरिवर्तनीय संदर्भ को संदर्भित किया जाता है। कक्षाएं संदर्भ प्रकार के प्रकार हैं, संरचनाएं और यूनियन मूल्य प्रकार हैं। डी के पहले संस्करण में, कीवर्ड    उस ऑब्जेक्ट के उदाहरण के लिए एक सूचक के रूप में उपयोग किया जाता है जिससे विधि जुड़ी हुई है, जबकि डी 2 में इसमें संदर्भ द्वारा अंतर्निहित कॉल का चरित्र होता है | फ़ंक्शन तर्क.

डायलन
प्रोग्रामिंग भाषा में डायलन (प्रोग्रामिंग भाषा), जो एक ऑब्जेक्ट-ओरिएंटेड भाषा है जो बहुपद्धति का समर्थन करती है और इसकी अवधारणा नहीं है, किसी ऑब्जेक्ट को संदेश भेजना अभी भी सिंटैक्स में रखा जाता है। नीचे दिए गए दोनों फॉर्म एक ही तरह से काम करते हैं; अंतर केवल वाक्यात्मक शर्करा है। ऑब्जेक्ट.विधि(परम1, परम2)

और

विधि (ऑब्जेक्ट, परम1, परम2)

एफिल
एक वर्ग पाठ के भीतर, वर्तमान प्रकार वर्तमान वर्ग से प्राप्त प्रकार है। किसी कक्षा की सुविधाओं (दिनचर्या, आदेश और प्रश्न) के भीतर, कोई कीवर्ड का उपयोग कर सकता है  वर्तमान वर्ग और उसकी विशेषताओं का संदर्भ देने के लिए। कीवर्ड का उपयोग   कीवर्ड के रूप में वैकल्पिक है   इसका तात्पर्य केवल वर्तमान वर्ग सुविधा के नाम को खुले तौर पर संदर्भित करना है। उदाहरण के लिए: किसी के पास क्लास MY_CLASS में `फू' सुविधा हो सकती है और इसे इसके द्वारा संदर्भित किया जा सकता है:

 कक्षा मेरी कक्षा सुविधा--पहुँच foo: पूर्णांक मेरा_फ़ंक्शन: पूर्णांक करना परिणाम:= फू अंत अंत  पंक्ति #10 (ऊपर) का निहित संदर्भ है  सरल `फू' पर कॉल करके।

पंक्ति #10 (नीचे) का स्पष्ट संदर्भ है  `Current.foo' पर कॉल द्वारा।

 कक्षा मेरी कक्षा सुविधा--पहुँच foo: पूर्णांक मेरा_फ़ंक्शन: पूर्णांक करना परिणाम:=वर्तमान.फू अंत अंत 

कोई भी दृष्टिकोण संकलक को स्वीकार्य है, लेकिन निहित संस्करण (उदा. ) को प्राथमिकता दी जाती है क्योंकि यह कम क्रियात्मक है।

अन्य भाषाओं की तरह, ऐसे समय भी आते हैं जब कीवर्ड का उपयोग किया जाता है  अनिवार्य है, जैसे:

 कक्षा मेरी कक्षा सुविधा--पहुँच my_command -- 'वर्तमान' के साथ MY_OTHER_CLASS बनाएं स्थानीय एक्स: मेरी_अन्य_क्लास करना x.make_with_something बनाएं (वर्तमान) अंत अंत 

उपरोक्त कोड के मामले में, लाइन #11 पर make_with_something पर कॉल स्पष्ट रूप से कीवर्ड को पास करके वर्तमान क्लास को पास कर रही है.

जावा
कीवर्ड  एक जावा (प्रोग्रामिंग भाषा) भाषा कीवर्ड है जो उस वर्ग के वर्तमान उदाहरण का प्रतिनिधित्व करता है जिसमें यह दिखाई देता है। इसका उपयोग क्लास वेरिएबल्स और विधियों तक पहुंचने के लिए किया जाता है।

चूँकि जावा में सभी इंस्टेंस विधियाँ आभासी हैं,  कभी भी शून्य नहीं हो सकता.

जावास्क्रिप्ट
जावास्क्रिप्ट में, जो एक प्रोग्रामिंग या स्क्रिप्टिंग भाषा है जिसका उपयोग वेब ब्राउज़र में बड़े पैमाने पर किया जाता है,  एक महत्वपूर्ण कीवर्ड है, हालाँकि इसका मूल्यांकन किस प्रकार किया जाता है यह इस बात पर निर्भर करता है कि इसका उपयोग कहाँ किया जाता है।


 * जब किसी फ़ंक्शन के बाहर, वैश्विक स्थान में उपयोग किया जाता है,  एन्क्लोजिंग ऑब्जेक्ट को संदर्भित करता है, जो इस मामले में एन्क्लोजिंग ब्राउज़र विंडो है   वस्तु।
 * जब ग्लोबल स्पेस में परिभाषित किसी फ़ंक्शन में उपयोग किया जाता है, तो कीवर्ड क्या होता है  संदर्भित करता है यह इस पर निर्भर करता है कि फ़ंक्शन को कैसे कॉल किया जाता है। जब ऐसे फ़ंक्शन को सीधे कॉल किया जाता है (उदा.  ),   उस वैश्विक स्थान को संदर्भित करेगा जिसमें फ़ंक्शन परिभाषित किया गया है, और जिसमें अन्य वैश्विक फ़ंक्शन और चर भी मौजूद हो सकते हैं (या सख्त मोड में, यह है  ). यदि एक वैश्विक फ़ंक्शन युक्त है   हालाँकि, दस्तावेज़ ऑब्जेक्ट में किसी तत्व के ईवेंट हैंडलर के भाग के रूप में कॉल किया जाता है   कॉलिंग HTML तत्व को संदर्भित करेगा।
 * जब किसी विधि का उपयोग करके कॉल किया जाता है  कीवर्ड (उदा.  ) फिर थिंग के भीतर    थिंग ऑब्जेक्ट को ही संदर्भित करता है।
 * जब किसी फ़ंक्शन को किसी ऑब्जेक्ट की प्रॉपर्टी के रूप में जोड़ा जाता है और उस ऑब्जेक्ट की विधि के रूप में बुलाया जाता है (उदाहरण के लिए) ),   उस ऑब्जेक्ट को संदर्भित करेगा जिसके भीतर फ़ंक्शन निहित है।  इसे मैन्युअल रूप से निर्दिष्ट करना भी संभव है   किसी फ़ंक्शन को कॉल करते समय, का उपयोग करके   या   फ़ंक्शन ऑब्जेक्ट के तरीके। उदाहरण के लिए, विधि कॉल   के रूप में भी लिखा जा सकता है.

के विभिन्न अर्थों के इर्द-गिर्द काम करना  DOM ईवेंट हैंडलर जैसे नेस्टेड फ़ंक्शंस में, इसे सहेजना जावास्क्रिप्ट में एक सामान्य मुहावरा है   एक वेरिएबल में कॉलिंग ऑब्जेक्ट का संदर्भ (आमतौर पर कहा जाता है   या  ), और फिर नेस्टेड फ़ंक्शंस में कॉलिंग ऑब्जेक्ट को संदर्भित करने के लिए वेरिएबल का उपयोग करें।

उदाहरण के लिए:

विशेष रूप से, जावास्क्रिप्ट दोनों का उपयोग करता है  और संबंधित कीवर्ड  (अधिकांश अन्य भाषाओं के विपरीत जो एक या दूसरे को नियोजित करती हैं), साथ   विशेष रूप से वेब कर्मियों तक ही सीमित रखा जा रहा है। अंत में, वैश्विक (विंडो या समतुल्य) ऑब्जेक्ट को विशेष रूप से संदर्भित करने के एक विश्वसनीय तरीके के रूप में, जावास्क्रिप्ट की सुविधा है  कीवर्ड.

दो
लुआ में,  जब फ़ंक्शंस का उपयोग करके परिभाषित किया जाता है तो सिंटैक्टिक शुगर के रूप में बनाया जाता है   ऑपरेटर। किसी विधि का उपयोग करते समय , अनुक्रमित की जा रही वस्तु को अंतर्निहित रूप से लागू किए जा रहे फ़ंक्शन के पहले तर्क के रूप में दिया जाएगा।

उदाहरण के लिए, निम्नलिखित दो कार्य समतुल्य हैं:

लुआ स्वयं ऑब्जेक्ट-ओरिएंटेड नहीं है, लेकिन जब इसे मेटाटेबल्स नामक एक अन्य सुविधा के साथ जोड़ा जाता है, तो इसका उपयोग किया जाता है  प्रोग्रामर को फ़ंक्शन को ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग के समान तरीके से परिभाषित करने देता है।

पावरशेल
PowerShell में विशेष स्वचालित चर  पाइपलाइन ऑब्जेक्ट में वर्तमान ऑब्जेक्ट शामिल है। आप इस वेरिएबल का उपयोग उन कमांड्स में कर सकते हैं जो प्रत्येक ऑब्जेक्ट पर या पाइपलाइन में चयनित ऑब्जेक्ट पर कार्रवाई करते हैं।  एक, दो , तीन | % { $_ लिखें } पॉवरशेल 5.0 से भी शुरू होता है, जो कक्षाओं और अन्य उपयोगकर्ता-परिभाषित प्रकारों को परिभाषित करने के लिए एक औपचारिक वाक्यविन्यास जोड़ता है,  वेरिएबल ऑब्जेक्ट के वर्तमान उदाहरण का वर्णन करता है।

पायथन
पायथन में, के लिए कोई कीवर्ड नहीं है. जब किसी सदस्य फ़ंक्शन को किसी ऑब्जेक्ट पर कॉल किया जाता है, तो यह ऑब्जेक्ट के क्लास ऑब्जेक्ट पर उसी नाम के साथ सदस्य फ़ंक्शन को आमंत्रित करता है, ऑब्जेक्ट स्वचालित रूप से फ़ंक्शन के पहले तर्क से जुड़ा होता है। इस प्रकार, विधि (कंप्यूटर प्रोग्रामिंग) का अनिवार्य पहला पैरामीटर के रूप में कार्य करता है ; इस पैरामीटर को पारंपरिक रूप से नाम दिया गया है , लेकिन नाम कुछ भी रखा जा सकता है।

कक्षा विधियों में (के साथ बनाया गया  डेकोरेटर), पहला तर्क क्लास ऑब्जेक्ट को ही संदर्भित करता है, और इसे पारंपरिक रूप से कहा जाता है  ; इनका उपयोग मुख्य रूप से इनहेरिटेबल कंस्ट्रक्टर्स के लिए किया जाता है, जहां एक पैरामीटर के रूप में क्लास का उपयोग कंस्ट्रक्टर को उपवर्गीकृत करने की अनुमति देता है। स्थैतिक तरीकों में (के साथ बनाया गया   डेकोरेटर), कोई विशेष पहला तर्क मौजूद नहीं है।

जंग
रस्ट में, प्रकारों को उनसे जुड़े कार्यों से अलग घोषित किया जाता है। पारंपरिक रूप से ऑब्जेक्ट-ओरिएंटेड भाषाओं में इंस्टेंस विधियों के अनुरूप डिज़ाइन किए गए फ़ंक्शंस को स्पष्ट रूप से लिया जाना चाहिए  उनके पहले पैरामीटर के रूप में। फिर इन फ़ंक्शंस का उपयोग करके कॉल किया जा सकता है   सिंटैक्स चीनी. उदाहरण के लिए:

यह एक प्रकार को परिभाषित करता है,, जिसके चार संबद्ध कार्य हैं। पहला,  , एक इंस्टेंस फ़ंक्शन नहीं है और इसे प्रकार उपसर्ग के साथ निर्दिष्ट किया जाना चाहिए। शेष तीन सभी एक लेते हैं   विभिन्न तरीकों से पैरामीटर, और इसे a पर कॉल किया जा सकता है   उदाहरण के लिए डॉट-नोटेशन सिंटैक्स शुगर का उपयोग किया जाता है, जो स्पष्ट रूप से टाइप-योग्य फ़ंक्शन नाम को कॉल करने के बराबर है   पहला पैरामीटर.

स्वयं
Self (प्रोग्रामिंग भाषा) भाषा का नाम self के इसी प्रयोग के आधार पर रखा गया है।

एक्सबेस++
किसी वर्ग के तरीकों के भीतर सख्ती से उपयोग किया जाता है। संदर्भित करने का दूसरा तरीका  उपयोग करना है.

अग्रिम पठन

 * Meyers, Scott, 1995. More Effective C++: 35 New Ways to Improve Your Programs and Designs. ISBN 0-201-63371-X Scott Meyers
 * Stroustrup, Bjarne, 1994. The Design and Evolution of C++. Addison-Wesley Pub. Co. ISBN 0-201-54330-3 Bjarne Stroustrup