मान लीजिए foo
एक सार एक सी ++ प्रोग्राम में class
है, कारण है कि यह स्वीकार्य प्रकार foo*
की चर घोषित करने के लिए है, लेकिन प्रकार foo
की नहीं है?सार वर्ग घोषणाओं ++
उत्तर
क्योंकि यदि आप एक foo घोषित करते हैं तो आपको इसे प्रारंभ/तत्काल करना होगा। यदि आप एक * foo घोषित करते हैं, तो आप इसे foo से प्राप्त कक्षाओं के उदाहरणों को इंगित करने के लिए उपयोग कर सकते हैं लेकिन सार नहीं हैं (और इस प्रकार तत्काल नहीं किया जा सकता है)
क्योंकि एक foo के लिए पॉइंटर एक foo नहीं है - वे पूरी तरह से हैं विभिन्न प्रकार। एक वर्ग सार बनाना कहता है कि आप कक्षा के प्रकार की वस्तुएं नहीं बना सकते हैं, न कि आप कक्षा में पॉइंटर्स (या संदर्भ) बना सकते हैं।
इसके अलावा के बाद से सार वर्गों आमतौर पर माता-पिता के रूप में उपयोग कर रहे हैं (आधार वर्ग - एबीसी) जो आप polymorphisem
class Abstract {}
class DerivedNonAbstract: public Abstract {}
void CallMe(Abstract* ab) {}
CallMe(new DerivedNonAbstract("WOW!"));
के लिए उपयोग करेंगे तो आपको एक अमूर्त वर्ग का दृष्टांत नहीं कर सकते। और निम्नलिखित घोषणाओं में अंतर है।
// declares only a pointer, but do not instantiate.
// So this is valid
AbstractClass *foo;
// This actually instantiate the object, so not valid
AbstractClass foo;
// This is also not valid as you are trying to new
AbstractClass *foo = new AbstractClass();
// This is valid as derived concrete class is instantiated
AbstractClass *foo = new DerivedConcreteClass();
क्योंकि अगर हम foo कि meanz हम वर्ग foo का एक उदाहरण है जो एक सार है पैदा कर रहे ऐलान करते हैं और यह एक अमूर्त वर्ग के उदाहरण बनाने के लिए असंभव है। हालांकि, हम बहुरूपता के फायदे लेने के लिए अपने ड्राइव कक्षाओं को इंगित करने के लिए एक अमूर्त वर्ग के सूचक का उपयोग कर सकते हैं। । ।
- 1. सार वर्ग
- 2. जावा - सार वर्ग रखने के लिए सार वर्ग?
- 3. सार तत्वों के बिना सार वर्ग
- 4. सार वर्ग - सी ++ अभ्यास
- 5. सी ++ सार वर्ग
- 6. जावा: सार वर्ग
- 7. सार वर्ग या इंटरफ़ेस
- 8. प्रकरण सार वर्ग
- 9. सी # सार वर्ग स्पष्टीकरण
- 10. शुद्ध सार आधार वर्ग
- 11. जावा सार वर्ग इंटरफ़ेस
- 12. एक सार वर्ग
- 13. php अमूर्त वर्ग एक और सार वर्ग
- 14. जावा सार वर्ग और जेनेरिक्स
- 15. सी # में पुनर्रचना सार वर्ग
- 16. 100% सार वर्ग बनाम इंटरफेस
- 17. एकाधिक महत्वपूर्ण वर्ग घोषणाओं और पूर्वता
- 18. आंशिक घोषणाओं में अलग-अलग आधार वर्ग
- 19. सार वर्ग या इंटरफ़ेस। किस तरह सही है?
- 20. डेटाबेस में एक सार आधार वर्ग और उप-वर्ग मॉडल
- 21. पायथन - एक सार आधार वर्ग का परीक्षण
- 22. सी # सार वर्ग स्थिर क्षेत्र विरासत
- 23. एक शुद्ध सार वर्ग और इंटरफ़ेस
- 24. सी # - इंटरफेस/सार वर्ग - घटना सुनिश्चित विधि
- 25. सार वर्ग, कोड डुप्लिकेशन से कैसे बचें?
- 26. सार वर्ग/विधि, सी # -> वीबीएनईटी
- 27. सार वर्ग + mixin + अजगर में एकाधिक वंशानुक्रम
- 28. सी ++ सार वर्ग पैरामीटर त्रुटि वैकल्पिक हल
- 29. इंटरफेस बनाम सार वर्ग (विशिष्ट मामले में)
- 30. प्रति वर्ग वर्ग को तालिका कैसे प्राप्त करें जब आधार वर्ग धाराप्रवाह निबर्ननेट में सार है?
आप 'foo &' जैसे अमूर्त वर्गों के संदर्भ भी घोषित कर सकते हैं। – iammilind
क्योंकि मैं सामान्य रूप से प्रकार के आकार की वस्तु को कुशल बनाना चाहता हूं (इस प्रकार मुझे एक सूचक या आकार के संदर्भ की आवश्यकता है)। लेकिन मैं निश्चित रूप से प्रकार के आकार की वस्तुओं को नहीं चाहता क्योंकि यह एक अमूर्त है, मुझे वर्गों या मंडलियों की वस्तुओं की आवश्यकता है। –