मैं देखना चाहता हूं कि मौजूदा कोड का यह उदाहरण सी ++ 0x प्रारंभकर्ता सूची सुविधा का लाभ कैसे ले सकता है।सी ++ 0x प्रारंभकर्ता सूची उदाहरण
Example0:
example1:
#include <vector>
#include <string>
struct Ask {
std::string prompt;
Ask(std::string a_prompt):prompt(a_prompt){}
};
struct AskString : public Ask{
int min;
int max;
AskString(std::string a_prompt, int a_min, int a_max):
Ask(a_prompt), min(a_min), max(a_max){}
};
int main()
{
std::vector<Ask*> ui;
ui.push_back(new AskString("Enter your name: ", 3, 25));
ui.push_back(new AskString("Enter your city: ", 2, 25));
ui.push_back(new Ask("Enter your age: "));
}
यह कुछ इस तरह का समर्थन करेंगे
std::vector<Ask*> ui ={
AskString("Enter your name: ", 3, 25),
AskString("Enter your city: ", 2, 25),
Ask("Enter your age: ")
};
या इस ?:
Example2 है जैसे कि यह शाब्दिक होना चाहिए:
std::vector<Ask*> ui ={
{"Enter your name: ", 3, 25},
{"Enter your city: ", 2, 25},
{"Enter your age: "}
};
यदि ऐसा है तो AskString और Ask के बीच का अंतर कैसे संभाला जाएगा?
यदि आप std :: vector का उपयोग करते हैं तो आप AskString नहीं जोड़ सकते! –
mmmmmmmm
मैंने सोचा कि AskString एक ऐसा फ़ंक्शन था जो एक पूछता है, मूर्ख मुझे। – rlbond
यह बहुत गलत है। AskString एक विशिष्ट प्रकार है जो इसकी बेस क्लास के रूप में पूछता है। आप जो फ़ंक्शन कहते हैं वह एक कन्स्ट्रक्टर है। वे बहुत अलग चीजें हैं। – jmucchiello