में एरे प्रारंभिकरण यह प्रश्न here पोस्ट से संबंधित है। क्या फ़ंक्शन कॉल या कन्स्ट्रक्टर कॉल में सरणी प्रारंभ करना संभव है? उदाहरण के लिए, कक्षा फू का कन्स्ट्रक्टर आकार 3 की सरणी चाहता है, इसलिए मैं foo ({0, 0, 0}) को कॉल करना चाहता हूं। मैंने यह कोशिश की है, और यह काम नहीं करता है। मैं अन्य ऑब्जेक्ट्स कन्स्ट्रक्टर प्रारंभिक सूचियों में प्रकार foo की ऑब्जेक्ट्स को प्रारंभ करने में सक्षम होना चाहता हूं, या पहले एक अलग सरणी बनाये बिना foo को प्रारंभ करना चाहता हूं। क्या यह संभव है?सी ++ फंक्शन कॉल या कंस्ट्रक्टर कॉल
उत्तर
वर्तमान मानक में नहीं। यह सी ++ 11
जीसीसी में आप एक डाली का प्रयोग कर एक अस्थायी के निर्माण के लिए मजबूर करने के कर सकते हैं, लेकिन यह मानक सी नहीं है ++ (C99) में संभव हो जाएगा:
typedef int array[2];
void foo(array) {} // Note: the actual signature is: void foo(int *)
int main() {
foo((array){ 1, 2 } );
}
यह C99 में काम करता है, लेकिन नहीं में सी ++ 03 (न C++ 0x में - यह एक यौगिक शाब्दिक है)। –
कोड ठीक है (मैकपोर्ट) जीसीसी तक 4.6 तक; जीसीसी 4.7 रिपोर्ट 'त्रुटि: अस्थायी सरणी का पता लेना'। –
सी ++ 11 वर्तमान मानक है, इसलिए इस जवाब को अपडेट करना होगा। –
यदि आपका डिजाइन द्वारा अनुमति दी , आप कक्षा के अंदर डेटा को लपेटने पर विचार कर सकते हैं और डिफ़ॉल्ट कन्स्ट्रक्टर में 0 (या आपकी पसंद के किसी भी मूल्य)
- 1. सी ++ सदस्य फंक्शन के लिए कॉल पॉइंटर
- 2. फंक्शन कॉल युक्त पैरालेलाइजिंग लूप
- 3. आर कॉल को फंक्शन कॉल में कैसे संभालता है?
- 4. कस्टम X86_64 कॉलिंग कन्वेंशन को सी फंक्शन कॉल
- 5. क्लिक करें फंक्शन कॉल पर JQuery
- 6. एक्सएएमएल कोड के भीतर फंक्शन कॉल?
- 7. सी ++ आभासी फ़ंक्शन कॉल बनाम बूस्ट :: फ़ंक्शन कॉल speedwise
- 8. कॉल सी ++ लाइब्रेरी सी #
- 9. सी फंक्शन
- 10. मैटलैब --- फंक्शन कॉल के लिए तर्क में विभाजित वेक्टर
- 11. पर्ल लूप में फंक्शन कॉल इतनी धीमी क्यों हैं?
- 12. औसत प्रति कॉल (सी #)
- 13. कंस्ट्रक्टर कॉल के स्थान के लिए स्कैला संकलन समय की जांच
- 14. सी - पहले आरआरवी() कॉल
- 15. फंक्शन सी
- 16. रिकर्सिव कॉल (सी ++ 11)
- 17. सी ++ समारोह कॉल पहचानकर्ता
- 18. सी पूंछ कॉल अनुकूलन
- 19. सी ++: समारोह कॉल लाइन
- 20. सी फंक्शन
- 21. क्या मैं सर्विसबेस से प्राप्त करते समय बेस कंस्ट्रक्टर को कॉल करता हूं?
- 22. कॉल onResume() या OnCreate (GCMIntentService
- 23. कॉल को सी # व्युत्पन्न विधि
- 24. सी # 4: पैरामीटर गतिशील कॉल
- 25. स्थानीय कॉल या एसटीडी या आईएसडी
- 26. निर्माता कॉल
- 27. स्काला में विशेषता, फंक्शन एन, या विशेषता-विरासत-फंक्शन एन?
- 28. Async कॉल उद्देश्य सी आईफोन
- 29. सी ++ निर्माता कॉल पैरामीटर प्रकार
- 30. सी # स्काइप एपीआई वीडियो कॉल
सबसे पहले आप सरणी प्रारंभिकरण के बारे में बात करते हैं, तो आपको क्लास ऑब्जेक्ट को intialize करने की आवश्यकता होती है। तो आपको इसे आरंभ करने की क्या आवश्यकता है: एक सरणी ऑब्जेक्ट या क्लास ऑब्जेक्ट? – AnT
कक्षा शुरू करना एक विशिष्ट मामला है जिसे मैंने एक उदाहरण के रूप में उपयोग किया, और यही कारण है कि मैंने सवाल पूछा। हालांकि, आपके पास एक फ़ंक्शन फ़ू भी हो सकता है जो आकार 3 की सरणी लेता है और इसे इसे कॉल करना चाहता है: foo ({0, 0, 0})। मैंने इसे और अधिक स्पष्ट बनाने के लिए ओपी बदल दिया है। – david
हां, लेकिन आप अभी भी पूछ रहे हैं "क्या इसे निर्दिष्ट किए बिना सरणी प्रारंभ करना संभव है?"। खैर, हाँ, यह संभव है। उदाहरण के लिए, 'int [10] = {5}' इसे बिना निर्दिष्ट किए सरणी को प्रारंभ करता है, जैसा आपने पूछा था। फिर भी, ऐसा लगता है कि आपको वास्तव में क्या दिलचस्पी दिखाई देती है। – AnT