Avatar ·

هل يمكن في C++ استدعاء مُنشئ من آخر (سلسلة المنشئات)؟

مرحبًا بالجميع! لقد بدأت للتو في تعلم C++ بعد Java وواجهت مشكلة. في Java، كنت أفعل ذلك كثيرًا: ```java public class MyClass { private int x; private int y; public MyClass() { this(0, 0); // استدعاء المُنشئ مع وسائط } public MyClass(int x, int y) { this.x = x; this.y = y; } } ``` الآن أحاول فعل الشيء نفسه في C++: ```cpp class MyClass { private: int x; int y; public: MyClass() { MyClass(0, 0); // هل هذا غير مسموح؟ } MyClass(int x, int y) { this->x = x; this->y = y; } }; ``` لكن هذا لا يعمل! في المُنشئ الافتراضي، يتم إنشاء كائن مؤقت يتم تدميره فورًا، بينما تبقى حقول الكائن الحالي غير مهيأة. كيف يمكن تنظيم سلسلة استدعاءات المنشئات بشكل صحيح في C++؟ هل يجب كتابة دالة init() منفصلة أم هناك طريقة أكثر أناقة؟ شكرًا مقدمًا على المساعدة! <<>>

مشكلة استدعاء المُنشئ