c++ - Can I have an array of integers for one constructor and a single integer for the other constructor? -


क्या निम्न कन्स्ट्रक्चर्स को उसी IntList वर्ग में अनुमति है?

 < कोड> इंटलालिस्ट (पूर्ण लंबाई); IntList (इंट डेटा []);    

यह ठीक है, लेकिन ध्यान दें कि बाद के रूप में int * डेटा , जो एक संकेतक है और एक सरणी नहीं है।

एरेएं गैर-प्रतिलिपि योग्य हैं और संदर्भ से पारित होनी चाहिए:

  typedef int array_type [5]; IntList (कॉन्स्ट सरणी प्रकार और amp; arr); // उसी प्रकार से: IntList (कॉन्स्ट इंट (एंड एआर) [5]);   

आप टेम्पलेट का उपयोग करके किसी भी आकार की सरणी भी ले सकते हैं:

  टेम्पलेट & lt; std :: size_t N & gt; IntList (कॉन्स्ट इंट (एआरएम) [एन]); // एन तत्वों की संख्या है   

लेकिन आपका दृष्टिकोण अंततः अपरंपरागत है। यदि आप डेटा की एक सीमा के साथ आरंभ करना चाहते हैं, तो इसे उपयोग करें:

  टेम्पलेट & lt; typename InputIterator & gt; IntList (InputIterator प्रारंभ, InputIterator अंत);   

अब आप शुरू से अंत से पुनरावृति कर सकते हैं, जो कि किसी भी प्रकार के कंटेनर से हेरेटर हो सकते हैं, जैसे कि arrays, Std :: vector 's, std :: map और अधिक।

लेकिन आपको std :: vector & lt; int & gt; / Code> इसके बजाय IntList के बजाय।

Comments