class C
{
public:
C() : arr({1,2,3}) //doesn't compile
{}
/*
C() : arr{1,2,3} //doesn't compile either
{}
*/
private:
int arr[3];
};
मेरा मानना है कि कारण यह है कि सरणियों को केवल =
सिंटैक्स के साथ आरंभ किया जा सकता है , अर्थात:
int arr[3] = {1,3,4};
प्रशन
- मैं वह कैसे कर सकता हूं जो मैं करना चाहता हूं (वह है, एक कंस्ट्रक्टर में एक सरणी को इनिशियलाइज़ करना) ( शरीर में तत्वों को असाइन नहीं करना)। क्या यह भी संभव है?
- क्या C ++ 03 मानक ctor initializers में एग्रीगेट (सरणियों सहित) को इनिशियलाइज़ करने के बारे में कुछ खास कहता है? या उपरोक्त कोड की अवैधता कुछ अन्य नियमों का एक समूह है?
- क्या C ++ 0x इनिशियल लिस्ट समस्या का समाधान करता है?
PS कृपया वैक्टर का उल्लेख न करें, बढ़ावा :: सरणियों, और सरणियों के लिए उनकी श्रेष्ठता, जो मैं अच्छी तरह से जानता हूं।