में संरचना विरासत struct
सी ++ में विरासत में हो सकता है?सी ++
सी ++
उत्तर
हाँ, struct
बिल्कुल class
की तरह है, सिवाय इसके डिफ़ॉल्ट पहुंच-struct
के लिए public
है (जबकि यह class
के लिए private
है)।
बेशक। सी ++ में, structs और कक्षाएं लगभग समान हैं (निजी की बजाय सार्वजनिक रूप से डिफ़ॉल्ट रूप से चीजें छोटे अंतरों में से हैं)।
हां। विरासत डिफ़ॉल्ट रूप से सार्वजनिक है।
सिंटेक्स (उदाहरण):
struct A { };
struct B : A { };
struct C : B { };
क्या एलेक्स और इवान पहले ही कहा गया है के अलावा, मैं जोड़ने के लिए है कि एक सी ++ struct एक सी struct जैसा नहीं है चाहते हैं।
सी ++ में, एक संरचना में सी ++ कक्षा की तरह विधियों, विरासत आदि हो सकते हैं।
जब एक वर्ग/struct से एक struct पाने, एक आधार वर्ग/struct के लिए डिफ़ॉल्ट पहुंच-विनिर्देशक सार्वजनिक है:
एक सी ++ संरचना सी संरचना की तरह हो सकती है। जब यह होता है, इसे पीओडी - सादा ओल्ड डेटाटाइप कहा जाता है। यह एक महत्वपूर्ण भेद है, उदाहरण के लिए, केवल पीओडी structs संघों का हिस्सा हो सकता है। – camh
लेकिन पीओडी के पास विधियां हो सकती हैं, इसलिए इस तरह की सी संरचनाओं की तरह "सी" नहीं हैं जो cgorshing के बारे में बात कर रहे हैं। –
सी ++ में, एक संरचना के भाग निम्नलिखित अंतर को छोड़कर एक वर्ग के रूप में ही है। और जब कक्षा प्राप्त होती है, तो डिफ़ॉल्ट पहुंच विनिर्देशक निजी होता है।
उदाहरण के लिए, प्रोग्राम 1 संकलन त्रुटि के साथ विफल रहता है और प्रोग्राम 2 ठीक काम करता है।
// Program 1
#include <stdio.h>
class Base {
public:
int x;
};
class Derived : Base { }; // Is equivalent to class Derived : private Base {}
int main()
{
Derived d;
d.x = 20; // Compiler error because inheritance is private
getchar();
return 0;
}
// Program 2
#include <stdio.h>
struct Base {
public:
int x;
};
struct Derived : Base { }; // Is equivalent to struct Derived : public Base {}
int main()
{
Derived d;
d.x = 20; // Works fine because inheritance is public
getchar();
return 0;
}
- 1. सी/सी ++/जावा/सी #
- 2. सी #, सी/सी ++ या ऑब्जेक्टिव-सी
- 3. सी/सी ++
- 4. सी/सी ++
- 5. सी/सी ++
- 6. सी/सी ++
- 7. सी/सी ++
- 8. सी/सी ++
- 9. सी/सी ++
- 10. सी/सी ++
- 11. सी/सी ++
- 12. सी/सी ++
- 13. सी/सी ++
- 14. सी/सी ++
- 15. सी/सी ++
- 16. सी/सी ++
- 17. सी/सी ++
- 18. सी/सी ++
- 19. सी/सी ++
- 20. सी/सी ++
- 21. सी/सी ++
- 22. सी/सी ++
- 23. सी/सी ++
- 24. सी/सी ++
- 25. सी/सी ++
- 26. सी/सी ++
- 27. सी/सी ++
- 28. सी/सी ++
- 29. सी/सी ++
- 30. सी/सी ++
यह स्वीकार्य उत्तर होना चाहिए। – QuantumKarl