2009-12-06 4 views
11

उदाहरण के लिए, एक वर्ग इसके निर्माता किया जा रहा है के साथ तालिका नाम है,: Table(string name="", vector <string> mods);कक्षा के भीतर एक डिफ़ॉल्ट कन्स्ट्रक्टर में उपयोग के लिए वेक्टर <string> के लिए डिफ़ॉल्ट पैरामीटर कैसे सेट करें?

मैं वेक्टर कैसे प्रारंभ होगा रिक्त?

संपादित करें: यह उल्लेख करना भूल गया कि यह सी ++ था।

+0

मैं: आप C++ 11 का उपयोग कर रहे हैं, तो आप एक वेक्टर के लिए डिफ़ॉल्ट पैरामीटर घोषणा के बाद करने के लिए छोटा करने के लिए सार्वभौमिक प्रारंभ सिंटैक्स का उपयोग कर सकते हैं अनुमान है कि यह सी ++ है? –

उत्तर

19
Table(string name="", vector <string> mods); 

आप वेक्टर निर्माता के अंदर खाली होना चाहते हैं तो

mods.clear(); 

या

mods.swap(vector<string>()); 

मामले में आप एक डिफ़ॉल्ट पैरामीटर के रूप में चाहते हैं:

Table(string name="", vector<string> mods = vector<string>()); 
किसी भी तरह

अन्य डिफ़ॉल्ट पैरामीटर।

+0

आह धन्यवाद! मैंने वेक्टर मोड (0, "") और कई अन्य विविधताओं जैसी चीजों को आजमाया। यह बिल्कुल अनुमान नहीं लगाया होगा! – Omar

+0

इसे संपादित करने से पहले अपना संदेश पकड़ा, यह विधि वेक्टर मोड = वेक्टर () और केवल वेक्टर मोड = वेक्टर() टेम्पलेट तर्क की आवश्यकता के बारे में शिकायत करती है। मुझे खुशी है कि मैंने पहला संदेश देखा क्योंकि शायद मुझे असाइनमेंट के दोनों तरफ टेम्पलेट तर्क देने के लिए नहीं पता था। – Omar

+0

क्षमा करें, यह ठीक से स्वरूपित नहीं किया गया था। –

8

अन्य जवाब देने के लिए जोड़ने के लिए:

Table(string name="", vector<string> mods={}); 
+0

अन्य विकल्पों की तुलना में बेहतर तरीका है। – dani

संबंधित मुद्दे

 संबंधित मुद्दे