से कक्षा प्राप्त कर सकता हूं प्रश्न यह सब वास्तव में कहता है। क्या मुझे एक संरचना से कक्षा प्राप्त करने की इजाजत है, या क्या मुझे अपनी कक्षा को एम्बेड करने वाली कक्षा बनाना चाहिए और दो के बीच स्थानांतरित करने के लिए कॉपी कन्स्ट्रक्टर और एक = ऑपरेटर को परिभाषित करना चाहिए?, क्या मैं एक संरचना
उत्तर
सी ++ struct
में (लगभग) class
(विभिन्न डिफ़ॉल्ट पहुंच स्तर को छोड़कर) का समानार्थी है, तो हाँ, आप कर सकते हैं।
struct A {
// fields are public by default
};
class B: public A {
// fields are private by default
};
मैं एमएफसी से परिचित नहीं हूं, लेकिन यह सी और सी ++ एपीआई दोनों को बनाए रखने के प्रयास की तरह दिखता है।
इसके लिए धन्यवाद। मुझे पूरा यकीन था कि यह ठीक था, लेकिन वास्तव में इसे अभ्यास में कभी नहीं देखा था। –
बेशक आप हैं। विरासत के संबंध में अलग क्या है कि यदि आप कक्षा को परिभाषित करते हैं, तो यह अन्य वर्गों/structs से निजी प्राप्त होगा। यदि आप एक struct को परिभाषित करने और एक वर्ग या struct से निकाले जाते हैं, तो यह डिफ़ॉल्ट रूप से एक सार्वजनिक विरासत होगा:
// the following two are equivalent except that one time class is
// used and the other time struct
struct f : g { };
class f : public g { };
आप आश्चर्य है कि कैसे आप सी structs लपेट चाहिए - मैं उन्हें कक्षा में एक सदस्य के रूप एम्बेड हैं । चूंकि सी structs को विरासत में प्राप्त करने के लिए डिज़ाइन नहीं किया गया था (सी संरक्षित और न ही आभासी विनाशक सी structs में सोचते हैं - वे एक नहीं हो सकता है)। वे सरल एकत्र होते हैं जो डेटा एकत्र करते हैं। और उन्हें सदस्यों के रूप में उपयोग करने के रूप में उन्हें उपयोग करते हैं (जैसा कि "एक बिंदु में एक एक्स और एक y समन्वय की एक जोड़ी है")।
सी structs उन सदस्यों का भी खुलासा करते हैं जिन्हें संभावित रूप से कक्षा में नहीं उजागर किया जाना चाहिए। कंटेंटमेंट जो खुलासा हुआ है उस पर सटीक नियंत्रण की अनुमति देता है और क्या प्राप्त/सेट फ़ंक्शंस द्वारा नहीं किया जाता है और आप अभी भी इसे नग्न सी संरचना ऑब्जेक्ट में प्रतिलिपि या संदर्भ देने दे सकते हैं।
हां। आप एक संरचना से एक वर्ग प्राप्त कर सकते हैं। सी ++ में, एक संरचना केवल एक कक्षा है जहां डिफ़ॉल्ट पहुंच निजी की बजाय सार्वजनिक होती है। एक स्ट्रक्चर से कक्षा को प्राप्त करना जो केवल गैर-वायरल सदस्य फ़ंक्शन और/या स्थैतिक फ़ंक्शंस जोड़ता है, एक सी स्टाइल एपीआई के साथ संगतता बनाए रखते हुए सी ++ इंटरफ़ेस प्रदान करने के लिए एक उपयोगी तकनीक है।
यह एमएफसी द्वारा कई सी structs के लिए उपयोग किया जाने वाला दृष्टिकोण है (आपके प्रश्न में जो कुछ भी है, उसके विपरीत)।
उदाहरण के लिए, सीआरईटी वर्ग सार्वजनिक रूप से संरचना टैगरेक्ट से व्युत्पन्न होता है (अधिक सामान्य रूप से इस्तेमाल किया जाने वाला नाम आरईसीटी संरचना टैगरेक्ट के लिए टाइपेडडफ होता है)। चूंकि स्ट्रक्चर टैगरेक्ट सभी डेटा सदस्यों को परिभाषित करता है, और सीआरईटी केवल गैर वर्चुअल सदस्य फ़ंक्शंस जोड़ता है, सीआरईटीएस और आरईसीटी का मेमोरी लेआउट समान होता है - आप एक सीईसीटी को आरईसीटी और इसके विपरीत होने वाले किसी भी फ़ंक्शन के लिए तर्क के रूप में उपयोग कर सकते हैं।
- 1. मैं संरचना
- 2. क्या एक सी ++ संकलक एक संरचना
- 3. एक संरचना
- 4. 'संरचना' से एक 'संरचना संरचना' अलग कैसे होती है?
- 5. सी ++: एक संरचना हटाएं?
- 6. क्या संरचना मैप है?
- 7. क्या एक SQL सर्वर इंडेक्स बी-पेड़ एक फ्लैट संरचना या गहराई संरचना
- 8. एक समान संरचना
- 9. एक संरचना सूचक
- 10. एक ही निर्देशिका संरचना
- 11. सी/सी ++: एक संरचना
- 12. क्या होता है यदि मैं एक vararg समारोह में एक संरचना पास?
- 13. मैं Win32 में एक विशिष्ट TIME_ZONE_INFORMATION संरचना कैसे प्राप्त करूं?
- 14. मैं एक मोंगो डेटाबेस की संरचना कैसे खोज सकता हूं
- 15. क्या मैं फ़ंक्शन संरचना का सही उपयोग कर रहा हूं?
- 16. मैं इस तरह एक पदानुक्रमित वर्ग संरचना है डेटा
- 17. क्या मैं सी ++ में संरचना को नष्ट कर सकता हूं?
- 18. मैं एक संरचना के लिए एक सूचक के रूप में एक संरचना कैसे मार्शल कर सकते हैं?
- 19. संरचना में संरचना
- 20. क्लोजर संरचना एक और संरचना के भीतर नेस्टेड
- 21. एक यूएमएल समग्र संरचना आरेख
- 22. एक कुशल डेटा संरचना क्षमता
- 23. स्थिर संरचना और सामान्य संरचना के बीच क्या अंतर है?
- 24. मैं कक्षा में एक संरचना कैसे घोषित करूं?
- 25. बेस्ट डेटा संरचना एक शब्दकोश
- 26. संरचना - इसके लिए क्या है?
- 27. क्या आप कक्षा या संरचना
- 28. सोनार डेटाबेस संरचना क्या है?
- 29. संरचना
- 30. एक संरचना के अंदर एक समारोह
एमएफसी के वर्ग सीआरईटी संरचना टैगरेक्ट, AFAICS से विरासत में विरासत। – Constantin
मेरा बुरा - प्रश्न का पाठ बदल गया। –