हम अक्सर कक्षा के विपरीत डेटा संरचना को परिभाषित करने के लिए c ++ संरचना का उपयोग करते हैं जो सदस्य विधियों के साथ एक पूर्ण मॉड्यूल हो सकता है। अब गहराई से, हम जानते हैं कि वे दोनों एक ही हैं (शिथिल बोल)।
तथ्य यह है कि हम अक्सर डेटा का उपयोग / उपचार करते हैं क्योंकि डेटा केवल इकाइयां यह आग्रह करती हैं कि हम डिफ़ॉल्ट निर्माणकर्ताओं को भी नहीं जोड़ें। लेकिन निर्माता हमेशा महान होते हैं, वे चीजों को सरल बनाते हैं और त्रुटियों को खत्म करने में मदद करते हैं।
यदि मेरी डेटा संरचनाओं में डिफ़ॉल्ट कंस्ट्रक्टरों को जोड़ा जाता है, तो क्या वह फेक हो जाएगा?
क्या डिफॉल्ट कंस्ट्रक्टर को लागू करने से स्ट्रक्चर नॉन-पीओडी (प्लेन पुराना डेटा टाइप) भी हो जाता है, बशर्ते अन्य मापदंड पूरे हो जाएं?
चीजों को परिप्रेक्ष्य में रखने के लिए, एक साधारण उदाहरण पर विचार करें लेकिन वास्तव में संरचना बहुत बड़ी होगी।
struct method
{
char name[32];
float temperature;
int duration;
};
हर बार जब मैं एक विधि बनाता हूं, तो मुझे चिंता करनी होगी (कम से कम कहने के लिए) अगर मैं कुछ मूल्य निर्धारित करना भूल गया। कल्पना कीजिए कि मैं temperature
सिस्टम को विधि सेट और लागू करना भूल जाता हूं जो अब एक यादृच्छिक उच्च मूल्य है और तबाही का कारण बनता है। या मैं सेट करना भूल गया duration
और अब यह विधि एक अज्ञात उच्च अवधि के लिए खुद को लागू करती है।
मुझे इसके निर्माता को लागू करने के बजाय हर बार ऑब्जेक्ट को इनिशियलाइज़ करने की जिम्मेदारी क्यों लेनी चाहिए जो इसकी गारंटी देता है?
struct
और class
यह है कि एक निजी और दूसरा सार्वजनिक रूप से चूकता है।