Avatar ·

क्या C++ में एक कंस्ट्रक्टर से दूसरे कंस्ट्रक्टर को कॉल किया जा सकता है? (कंस्ट्रक्टर चेनिंग)

नमस्ते साथियों! मैं एक शुरुआती C++ डेवलपर हूँ और मुझे एक ऐसी समस्या का सामना करना पड़ा है जो मुझे बहुत अजीब लगती है। मेरे पास एक class है जिसमें कई कंस्ट्रक्टर हैं। वे सभी एक ही काम करते हैं: fields को initialize करना, memory allocate करना, लेकिन अलग-अलग parameters के साथ। उदाहरण के लिए, एक कंस्ट्रक्टर name और age लेता है, दूसरा केवल name लेता है (age डिफ़ॉल्ट 0 है), तीसरा कुछ नहीं लेता (सब कुछ डिफ़ॉल्ट है)।

\n\n

यहाँ सरलीकृत कोड है जो मैं करने की कोशिश कर रहा हूँ:

\n\n
class Person {\npublic:\n    std::string name;\n    int age;\n\n    // दो parameters वाला कंस्ट्रक्टर\n    Person(const std::string& n, int a) : name(n), age(a) {\n        // कुछ जटिल initialization, जैसे age की जाँच\n        if (age < 0) age = 0;\n        std::cout << \"Person created: \" << name << \", \" << age << std::endl;\n    }\n\n    // एक parameter वाला कंस्ट्रक्टर\n    Person(const std::string& n) {\n        // मैं यहाँ Person(n, 0) कॉल करना चाहता हूँ, लेकिन यह काम नहीं करता\n    }