यह सख्त अर्थ में वास्तव में आवश्यक नहीं है और कभी नहीं था। अर्थात। आप हमेशा एक नाम असाइन कर सकते हैं, उदाहरण के लिए anonymous1
, anonymous2
इत्यादि। लेकिन आवश्यकतानुसार अधिक नामों का ट्रैक रखना हमेशा परेशानी होती है।
जहां यह सहायक है, वह किसी भी स्थान पर है जहां कोई उस समूह को नाम दिए बिना डेटा समूह करना चाहता है।
class foo {
class {
public:
void validate(int x) { m_x = x; }
bool valid() { return m_exists; }
private:
int m_x;
bool m_exists;
} maybe_x;
};
इस मामले int
में और bool
तार्किक साथ रहती हैं, तो यह उन्हें समूह में समझ में आता है: मैं एक कई उदाहरण के साथ आ सकता है। हालांकि इस ठोस उदाहरण के लिए यह संभवतः एक वास्तविक वैकल्पिक प्रकार बनाने या उपलब्ध लोगों में से एक का उपयोग करने के लिए समझ में आता है, क्योंकि यह पैटर्न अन्य स्थानों पर भी अधिकतर उपयोग किया जाता है। अन्य मामलों में समूहीकरण का यह पैटर्न इतना खास हो सकता है कि यह केवल उस वर्ग में रहने के योग्य है।
मैं वास्तव में हालांकि मानता हूं कि अज्ञात वर्गों का शायद ही कभी उपयोग किया जाता है (मैंने केवल उन्हें अपने जीवन में कुछ बार उपयोग किया है)। अक्सर जब कोई डेटा समूह करना चाहता है, तो यह कक्षा या दायरा विशिष्ट नहीं है बल्कि एक समूह भी है जो अन्य स्थानों पर भी समझ में आता है।
आप गुमनाम struct क्यों हैं गुमनाम (vs2015) में ऑटो के साथ काम कर सकते हैं? – Nawaz
@ नवाज आह हाँ, आप सही हैं। मैं इसी कारण से हो सकता हूं कि यह सी पर क्यों मौजूद है। वैसे भी मैं विशेष रूप से सी ++ के मामलों के बारे में उत्सुक हूं। चूंकि सी ++ सी – Eonil