मेरे पास एक वर्ग A
है जो initializer_list
लेता है और इसे एक सदस्य चर के रूप में संग्रहीत करता है।सदस्य चर के रूप में std :: startizer_list का उपयोग कर
class A
{
public:
A(std::initializer_list<std::string> il) :
m_il(il)
{}
std::initializer_list<std::string> m_il;
};
एक अन्य वर्ग B
A
एक सदस्य चर रहा है कि डिफ़ॉल्ट जब मैं मुख्य में इस कोड को चलाने अब initializer_list
class B
{
public:
B()
{
std::cout << *m_a.m_il.begin() << std::endl;
}
A m_a { "hello", "bye" };
};
का उपयोग कर प्रारंभ, यह कुछ भी प्रिंट के रूप में है।
int main()
{
B b;
}
ऊपर दिए गए कोड को hello
प्रिंट क्यों नहीं किया गया? क्या मेरा उपयोग std::initializer_list
गलत है?
initializer_list' एक डेटा सदस्य के रूप में 'प्रयोग न करें। – 0x499602D2
गैर-स्थैतिक वर्ग के सदस्य को शुरू करने का भी उल्लेख किया गया है [यहां] (http://en.cppreference.com/w/cpp/utility/initializer_list) कुछ ऐसा जो विशेष रूप से _doesn't_ अंतर्निहित अस्थायी जीवनकाल का विस्तार नहीं करता है – Useless