मेरे पास कक्षा ए के सदस्य हैं जो मेरी कक्षा में हैं जो कन्स्ट्रक्टर कई पैरामीटर लेता है। मैं कक्षा ए के निर्माता को अपनी खुद की कक्षा के पैरामीटर को अग्रेषित करता हूं लेकिन यह महत्वपूर्ण है कि ये पैरामीटर सही हैं, इसलिए मुझे ए के सदस्य को बनाने से पहले उन्हें जांचना होगा और समस्या का पालन करना होगा: मैं सदस्य को छोड़ सकता हूं सदस्य इंटिलाइजेशन सूची, प्रभावी रूप से डिफ़ॉल्ट कन्स्ट्रक्टर को बुला रही है। कन्स्ट्रक्टर में चेक के बाद मैं ए के कन्स्ट्रक्टर को एक वर्कमेंट में कॉल कर सकता था। हालांकि, यह एक त्रुटि उत्पन्न करता है क्योंकि ए के विनाशक निजी है।प्रारंभिक सूची से पहले चेक निष्पादित करें
मैं इसे कैसे हल करूं?
MyClass::MyClass(int someParam) : otherMember(2){
//checks for someParam
member = A(someParam); // <- produces error
}
कक्षा 'ए' के लेखक से बात करें और उसे 'ए' का स्वयं का कन्स्ट्रक्टर अवैध पैरामीटर मानों की स्थिति में समझदारी से व्यवहार करने के लिए मजबूर करता है। –
क्या यह 'ए' बनाने के लिए स्वीकार्य होगा और फिर तथ्य के बाद जांच करेगा? – Cameron
मैंने वास्तव में जावा में स्वीकार्य बनाने के लिए सूर्य को मनाने की कोशिश की, लेकिन उन्होंने इनकार कर दिया। जावा में धोखा देना थोड़ा आसान है क्योंकि आप एक कन्स्ट्रक्टर को दूसरे से कॉल कर सकते हैं। – Neil