هل يمكن في 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() منفصلة أم هناك طريقة أكثر أناقة؟ شكرًا مقدمًا على المساعدة!
<<>>