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` का कोई डिफॉल्ट कंस्ट्रक्टर नहीं है, लेकिन मैं इसे कैसे ठीक करूँ?