सी ++ में किस प्रकार का तत्काल किया जा सकता है?तत्काल क्या किया जा सकता है?
मुझे पता है कि निम्नलिखित प्रत्येक सीधे Foo
का एक उदाहरण बनाने के लिए:
Foo bar;
Foo *bizz = new Foo();
हालांकि, के बारे में के साथ निर्मित प्रकार? क्या निम्नलिखित int
के दो उदाहरण बनाते हैं, या उदाहरण के लिए गलत शब्द का उपयोग करना है और स्मृति आवंटित की जा रही है?
int bar2;
int *bizz2 = new int;
पॉइंटर्स के बारे में क्या? क्या उपरोक्त उदाहरण int *
उदाहरण बनाते हैं, या बस int *
के लिए स्मृति आवंटित करते हैं?
42
या 3.14
जैसे अक्षरों का उपयोग करना भी एक उदाहरण बनायेगा?
मैंने तर्क देखा है कि यदि आप किसी प्रकार को उपclass नहीं कर सकते हैं, तो यह एक वर्ग नहीं है, और यदि यह कक्षा नहीं है, तो इसे तत्काल नहीं किया जा सकता है। क्या ये सच है?
बहुत अच्छा। धन्यवाद। =] – strager
यह अब तक का सबसे अच्छा जवाब है। सी ++ मानक और सामान्य ओओपी शब्दावली के बीच अंतर दिलचस्प है। अधिकांश ओओपी प्रोग्रामर शायद 'int x' जैसे कुछ' int 'के उदाहरण को कॉल नहीं करेंगे, और न ही उन्हें किसी वस्तु के रूप में' int 'को संदर्भित करने की संभावना होगी; लेकिन फिर भी इसे संदर्भित करने के लिए तकनीकी रूप से सही होगा। –
हां, "उदाहरण" जैसा कि पावेल द्वारा उद्धृत किया गया है, सामान्य ओओपी भावना में बिल्कुल उपयोग नहीं किया जा रहा है, क्योंकि यह "किसी ऑब्जेक्ट का उदाहरण" नहीं है, न कि "एक प्रकार का उदाहरण"। मुझे लगता है कि इसे "एक अलग वस्तु ..." से बदला जा सकता है और इसका मतलब एक ही बात है। मैं अनुमान लगाता हूं कि अधिकांश ओओपी प्रोग्रामर एक वस्तु के रूप में एक int को संदर्भित नहीं करेंगे क्योंकि उन्हें जावा पर प्रशिक्षित किया गया था, जहां वास्तव में 'int'' ऑब्जेक्ट 'नहीं है। शुद्ध ओओपी भाषाएं अंतर्निर्मित प्रकारों के लिए अपवाद नहीं बनाती हैं, इसलिए उनके पूर्णांक वस्तुएं हैं। रुबी में आप गतिशील रूप से बंदर-पैच विधियों को कक्षा में कर सकते हैं जो उन्हें दर्शाता है, '3.minutes' बराबर 180 बनाने के लिए। –