Avatar ·

كيفية استدعاء طريقة الفئة الأصلية من طريقة معاد تعريفها في C++؟

مرحبًا! أتعلم لغة C++ ولا أستطيع فهم الوراثة. لدي فئة أساسية `Animal` بطريقة افتراضية `Speak()` تطبع "Some generic animal sound". أقوم بإنشاء فئة مشتقة `Dog` تعيد تعريف هذه الطريقة لطباعة "Woof!". المشكلة هي أنني في طريقة `Speak()` من فئة `Dog` أحتاج أولاً إلى تنفيذ الكود من الفئة الأصلية `Animal::Speak()`، ثم إضافة الإخراج الخاص بالكلب. أحاول استدعاءها مباشرة لكنني لا أستطيع. هذا هو الكود الخاص بي: ```cpp #include using namespace std; class Animal { public: virtual void Speak() { cout << "Some generic animal sound" << endl; } }; class Dog : public Animal { public: void Speak() override { // هنا أريد أولاً استدعاء Animal::Speak() Speak(); // يستدعي نفسه — تكرار لا نهائي! cout << "Woof!" << endl; } }; int main() { Dog myDog; myDog.Speak(); // أتوقع