मुझे दो डिफ़ॉल्ट पैरामीटर के साथ कन्स्ट्रक्टर लिखना है।डिफ़ॉल्ट तर्क C++ को कैसे छोड़ें?
func(int arg1 , char* arg2 = "arg2", int arg3 = 1) //example
मैं परिदृश्य में जहाँ निर्माता कहा जाता है प्रदान की कर रहा हूँ और एक मूल्य arg1
और arg2
और arg3
को दिया जाता है एक डिफ़ॉल्ट मान का उपयोग करने की उम्मीद है। फिर एक और ऑब्जेक्ट तत्काल होता है और arg1
और arg3
पर मान दिया जाता है, और arg2
के लिए डिफ़ॉल्ट मान का उपयोग होने की उम्मीद है। अब समस्या यह है कि, आप डिफ़ॉल्ट पैरामीटर को "छोड़ नहीं सकते" है जो मैं पाठ और ऑनलाइन से पढ़ रहा हूं। यह डिफ़ॉल्ट पैरामीटर को ओवरलोड होने की अपनी पसंद से ऑर्डर करने का कह रहा है, लेकिन परिदृश्य में एक डिफ़ॉल्ट पैरामीटर होता है जबकि दूसरा नहीं होता है। इस प्रश्न के संकेत मुझे पैरामीटर/तर्कों को पुन: व्यवस्थित करने के लिए कहते हैं। हालांकि, मैंने जो भी किया है, वह इस मुद्दे को हल करने में सक्षम नहीं है।
इसके अलावा, अधिभारित कन्स्ट्रक्टर का उपयोग नहीं किया जा सकता है। यह एक कन्स्ट्रक्टर द्वारा किया जाना है।
तो कोई ऐसा कैसे करेगा? मैं स्टंप्डया और थोड़ा इस :(
आप इसे एक एकल फ़ंक्शन परिभाषा के साथ C++ में नहीं कर सकते हैं। यह देखते हुए कि कोई अन्य समाधान आपके पास विचित्र बाधाओं का उल्लंघन करता है, जो आप चाहते हैं वह असंभव है। शायद आप एक अलग भाषा का उपयोग कर सकते हैं। –
यह होमवर्क है? – xmoex
क्या आप ऑब्जेक्ट के 'वेक्टर' का उपयोग नहीं कर सकते? इस तरह आप जो चाहते थे उसे पारित कर सकते हैं और 'शून्य' प्रविष्टियों के आधार पर पारित नहीं किया गया था। – MoonKnight