قواعد استدعاء المُنشئ للفئة الأساسية في 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` ليس لديها مُنشئ افتراضي.