मैं बस सोच रहा था, कि क्या एक वर्ग की एक सरणी सदस्य वर्ग निर्माण के तुरंत बाद ही बनाया जा सकता है:सी ++ सरणी निर्माता
class C
{
public:
C(int a) : i(a) {}
private:
int i;
};
class D
{
public:
D() : a(5, 8) {}
D(int m, int n) : a(m,n) {}
private:
C a[2];
};
जहां तक मेरा googled है, इस तरह के ऊपर के रूप में निर्माता के भीतर सरणी निर्माण सी में है ++ असंभव। वैकल्पिक रूप से, सरणी सदस्य को निम्नानुसार कन्स्ट्रक्टर ब्लॉक के भीतर प्रारंभ किया जा सकता है।
class D
{
public:
D() {
a[0] = 5;
a[1] = 8;
}
D(int m, int n) {
a[0] = m;
a[1] = n;
}
private:
C a[2];
};
लेकिन फिर, यह अब एक सरणी निर्माण नहीं है, लेकिन सरणी असाइनमेंट है। सरणी elemnts स्वचालित रूप से संकलक द्वारा उनके डिफ़ॉल्ट कन्स्ट्रक्टर के माध्यम से बनाए जाते हैं और बाद में उन्हें मैन्युअल रूप से C'tor ब्लॉक के भीतर विशिष्ट मानों को असाइन किया जाता है। कष्टप्रद क्या है; इस तरह के कामकाज के लिए, कक्षा सी को एक डिफ़ॉल्ट निर्माता प्रदान करना है।
क्या कोई भी ऐसा विचार है जो निर्माण पर सरणी सदस्यों को बनाने में मेरी मदद कर सकता है। मुझे पता है कि std :: वेक्टर का उपयोग एक समाधान हो सकता है लेकिन, परियोजना स्थितियों के कारण मुझे किसी मानक, बूस्ट या तृतीय पक्ष लाइब्रेरी का उपयोग करने की अनुमति नहीं है।
आपको सी ++ 0x की प्रतीक्षा करनी है, जो इसे अनुमति देता है। –