## Object class


C# में [System.Object](./) क्लास के उपलब्ध मेथड्स का उपयोग सक्षम करने वाली बेस क्लास। ट्रांसलेटेड एनवायरनमेंट में उपयोग होने वाली सभी नॉन-ट्रिवियल क्लासेज़ को इसे इनहेरिट करना चाहिए।

```cpp
class Object
```

## विधियाँ

| विधि | विवरण |
| --- | --- |
| virtual [Equals](./equals/)(ptr) | ऑब्जेक्ट्स की तुलना C# [Object.Equals](./equals/) सेमांटिक्स का उपयोग करके करता है। |
| static [Equals](./equals/)(T1 const\&, T2 const\&) | रेफ़रेंस टाइप ऑब्जेक्ट्स की तुलना C# शैली में करता है। |
| static [Equals](./equals/)(T1 const\&, T2 const\&) | वैल्यू टाइप ऑब्जेक्ट्स की तुलना C# शैली में करता है। |
| static [Equals](./equals/)(float const\&, float const\&) | C#-स्टाइल फ्लोटिंग पॉइंट तुलना को एम्यूलेट करता है जहाँ दो NaN को बराबर माना जाता है, भले ही IEC 60559:1989 के अनुसार NaN किसी भी वैल्यू के बराबर नहीं होता, जिसमें NaN भी शामिल है। |
| static [Equals](./equals/)(double const\&, double const\&) | C#-स्टाइल फ्लोटिंग पॉइंट तुलना को एम्यूलेट करता है जहाँ दो NaN को बराबर माना जाता है, भले ही IEC 60559:1989 के अनुसार NaN किसी भी वैल्यू के बराबर नहीं होता, जिसमें NaN भी शामिल है। |
| virtual [FastCast](./fastcast/)(const Details::FastRttiBase\&, void **) const | केवल आंतरिक उपयोग के लिए। |
| [GetCounter](./getcounter/)() | ऑब्जेक्ट से जुड़े रेफ़रेंस काउंटर डेटा स्ट्रक्चर को प्राप्त करता है। |
| virtual [GetHashCode](./gethashcode/)() const | C# [Object.GetHashCode()](./gethashcode/) मेथड का एनालॉग। कस्टम ऑब्जेक्ट्स की हैशिंग को सक्षम बनाता है। |
| virtual [GetType](./gettype/)() const | ऑब्जेक्ट का वास्तविक टाइप प्राप्त करता है। C# [System.Object.GetType()](./gettype/) कॉल का एनालॉग। |
| virtual [Is](./is/)(const TypeInfo\&) const | जाँचें कि ऑब्जेक्ट targetType द्वारा वर्णित टाइप की इंस्टेंस है या नहीं। C# 'is' ऑपरेटर का एनालॉग। |
| [Lock](./lock/)() | C# lock() स्टेटमेंट लॉकिंग को इम्प्लीमेंट करता है। सीधे कॉल करें या [LockContext](../lockcontext/) सेंट्री ऑब्जेक्ट का उपयोग करें। |
| virtual [MemberwiseClone](./memberwiseclone/)() const | C# [Object.MemberwiseClone()](./memberwiseclone/) मेथड का एनालॉग। कस्टम टाइप्स की क्लोनिंग को सक्षम बनाता है। |
| [Object](./object/)() | ऑब्जेक्ट बनाता है। सभी आंतरिक डेटा स्ट्रक्चर्स को इनिशियलाइज़ करता है। |
| [Object](./object/)(Object const\&) | कॉपी कन्स्ट्रक्टर। वास्तव में कुछ भी कॉपी नहीं करता, बस नया ऑब्जेक्ट इनिशियलाइज़ करता है और सबक्लासेज़ की कॉपी कंस्ट्रक्शन को सक्षम बनाता है। |
| [operator=](./operator=/)(Object const\&) | असाइनमेंट ऑपरेटर। वास्तव में कुछ भी कॉपी नहीं करता, बस नया ऑब्जेक्ट इनिशियलाइज़ करता है और सबक्लासेज़ की कॉपी कंस्ट्रक्शन को सक्षम बनाता है। |
| static [ReferenceEquals](./referenceequals/)(ptr const\&, ptr const\&) | ऑब्जेक्ट्स की तुलना रेफ़रेंस द्वारा करता है। |
| static [ReferenceEquals](./referenceequals/)(T const\&, T const\&) | ऑब्जेक्ट्स की तुलना रेफ़रेंस द्वारा करता है। |
| static [ReferenceEquals](./referenceequals/)(T const\&, std::nullptr_t) | Reference-की तुलना मान प्रकार की वस्तु से nullptr के साथ करता है। |
| [ReferenceEquals](./referenceequals/)(String const\&, std::nullptr_t) | स्ट्रिंग और nullptr के मामले के लिए [Object::ReferenceEquals](./referenceequals/) का विशिष्टीकरण। |
| [ReferenceEquals](./referenceequals/)(String const\&, String const\&) | स्ट्रिंग्स के मामले के लिए [Object::ReferenceEquals](./referenceequals/) का विशिष्टीकरण। |
| [RemovedSharedRefs](./removedsharedrefs/)(int) | निर्दिष्ट मान द्वारा साझा रेफ़रेंस काउंट को घटाता है। |
| virtual [SetTemplateWeakPtr](./settemplateweakptr/)(uint32_t) |  n'th टेम्पलेट आर्ग्युमेंट को एक weak पॉइंटर सेट करें (shared के बजाय)। कंटेनरों में पॉइंटर्स को weak मोड में स्विच करने की अनुमति देता है। |
| [SharedCount](./sharedcount/)() const | साझा रेफ़रेंस काउंटर का वर्तमान मान प्राप्त करता है। |
| [SharedRefAdded](./sharedrefadded/)() | साझा रेफ़रेंस काउंट को बढ़ाता है। इसे सीधे नहीं बुलाया जाना चाहिए; इसके बजाय, स्मार्ट पॉइंटर्स या ThisProtector का उपयोग करें। |
| [SharedRefRemovedSafe](./sharedrefremovedsafe/)() | साझा रेफ़रेंस काउंट को घटाता है और लौटाता है। इसे सीधे नहीं बुलाया जाना चाहिए; इसके बजाय, स्मार्ट पॉइंटर्स या ThisProtector का उपयोग करें। |
| virtual [ToString](./tostring/)() const | C# के [Object.ToString()](./tostring/) मेथड का समानार्थी। कस्टम वस्तुओं को स्ट्रिंग में बदलने में सक्षम बनाता है। |
| static [Type](./type/)() | C# के typeof([System.Object](./)) निर्माण को लागू करता है। |
| [Unlock](./unlock/)() | C# के lock() स्टेटमेंट को अनलॉक करने को लागू करता है। सीधे कॉल करें या [LockContext](../lockcontext/) सेंट्री ऑब्जेक्ट का उपयोग करें। |
| [WeakRefAdded](./weakrefadded/)() | वीक रेफ़रेंस काउंट को बढ़ाता है। इसे सीधे नहीं बुलाया जाना चाहिए; इसके बजाय, स्मार्ट पॉइंटर्स या ThisProtector का उपयोग करें। |
| [WeakRefRemoved](./weakrefremoved/)() | वीक रेफ़रेंस काउंट को घटाता है। इसे सीधे नहीं बुलाया जाना चाहिए; इसके बजाय, स्मार्ट पॉइंटर्स या ThisProtector का उपयोग करें। |
| virtual [~Object](./~object/)() | ऑब्जेक्ट को नष्ट करता है। सभी आंतरिक डेटा संरचनाओं को मुक्त करता है। |
## Typedefs

| टाइपडिफ़ | विवरण |
| --- | --- |
| [ptr](./ptr/) | स्मार्ट पॉइंटर प्रकार के लिए उपनाम। |
## टिप्पणियाँ


C# के [System.Object](./) क्लास में उपलब्ध मेथड्स के साथ-साथ, यह अनूदित कोड पर्यावरण के लिए विशिष्ट कुछ अवधारणाओं का समर्थन भी सक्षम करता है। इसमें स्मार्ट पॉइंटर क्लासों ([System::SmartPtr](../smartptr/), [System::WeakPtr](../weakptr/), [System::DynamicWeakPtr](../dynamicweakptr/)) द्वारा उपयोग किया जाने वाला रेफ़रेंस काउंटिंग और मेमोरी प्रबंधन, डिबग आदि से संबंधित अन्य सेवाएँ शामिल हैं।

प्रत्येक [Object](./) में दो रेफ़रेंस काउंटर होते हैं: साझा रेफ़रेंस काउंटर और वीक रेफ़रेंस काउंटर। वीक रेफ़रेंस काउंटर हमेशा अलग डेटा संरचना में संग्रहीत रहता है, न कि स्वयं [Object](./) में, जिससे वीक पॉइंटर्स को संदर्भित ऑब्जेक्ट के जीवनकाल से अधिक समय तक रहने की अनुमति मिलती है। स्मार्ट रेफ़रेंस काउंटर या तो ऑब्जेक्ट में ही या उसी अलग संरचना में संग्रहीत रहता है, यह ENABLE_EXTERNAL_REFCOUNT मैक्रो की स्थिति पर निर्भर करता है। डिफ़ॉल्ट रूप से, यह डिबग बिल्ड्स में सक्षम और रिलीज़ बिल्ड्स में अक्षम रहता है। यदि स्मार्ट पॉइंटर काउंटर ऑब्जेक्ट में ही संग्रहीत है, तो अलग डेटा संरचना केवल तब बनाई जाती है जब वीक पॉइंटर्स ऑब्जेक्ट के लिए मौजूद हों। अन्यथा, यह ऑब्जेक्ट के साथ ही बनाई जाती है।

सभी स्मार्ट पॉइंटर्स इन दो रेफ़रेंस काउंटरों का उपयोग करते हैं और समान एवं एकमात्र स्वामित्व समूह में योगदान देते हैं।

यदि [Object](./) का उपवर्ग स्टैक पर बनाया जाता है, तो उसके लिए कोई स्मार्ट पॉइंटर नहीं बनाया जा सकता, अन्यथा स्टैक डिलीशन समस्या उत्पन्न होती है।

यह प्रकार या तो स्टैक में वैल्यू टाइप के रूप में या हीप में [System::MakeObject()](../makeobject/) फ़ंक्शन का उपयोग करके आवंटित किया जा सकता है। एक बार ऑब्जेक्ट आवंटित हो जाने के बाद, इन दो उपयोग मामलों को कभी मिलाएँ नहीं: स्टैक-आवंटित ऑब्जेक्ट्स पर [SmartPtr](../smartptr/) पॉइंटर्स रखना सख्ती से प्रतिबंधित है।
## संबंधित देखें

* Namespace [System](../)
* Library [Aspose.Page for C++](../../)
