Avatar ·

قواعد استدعاء المُنشئ للفئة الأساسية في C++

مرحباً بالجميع! بدأت تعلم لغة C++ وواجهت مشكلة مع الوراثة والمُنشئات. لدي فئة أساسية `Animal` وفئة مشتقة `Dog`. أريد أنه عند إنشاء كائن `Dog` يتم استدعاء مُنشئ `Animal` الذي يستقبل اسمًا تلقائيًا. لكنني لا أستطيع تحقيق ذلك. إليك الكود الخاص بي: ```cpp #include #include class Animal { public: Animal(const std::string& name) : name_(name) { std::cout << "Animal constructor called for " << name_ << std::endl; } private: std::string name_; }; class Dog : public Animal { public: Dog(const std::string& breed) : breed_(breed) { std::cout << "Dog constructor called for breed " << breed_ << std::endl; } private: std::string breed_; }; int main() { Dog myDog("Labrador"); // خطأ في الترجمة! return 0; } ``` يُصدر المترجم خطأ: `no default constructor exists for class "Animal"`. أفهم أن `Animal` ليس لديها مُنشئ افتراضي.