构造函数传入父类指针的好处及具体示例?
时间: 2023-07-12 16:08:37 浏览: 100
构造函数传入父类指针的好处在于可以在子类对象的构造函数中调用父类构造函数,并且可以继承父类的成员变量和成员函数,方便代码的重用和维护。
具体示例如下:
```c++
class Animal {
public:
Animal(string name) : m_name(name) {}
virtual void speak() { cout << "I am an animal." << endl; }
protected:
string m_name;
};
class Dog : public Animal {
public:
Dog(string name, string breed) : Animal(name), m_breed(breed) {}
void speak() { cout << "I am a dog, my breed is " << m_breed << "." << endl; }
private:
string m_breed;
};
int main() {
Animal* animal = new Dog("Tom", "Labrador");
animal->speak();
delete animal;
return 0;
}
```
在上面的例子中,Animal 是父类,Dog 是子类,Dog 构造函数中传入了 Animal 对象的指针,以调用 Animal 的构造函数。这样,Dog 就可以继承 Animal 的成员变量和成员函数,同时也可以定义自己的成员变量和成员函数。在 main 函数中,我们创建了一个 Animal 对象的指针,并将其指向了一个 Dog 对象,调用 speak 函数时,实际上会调用 Dog 的 speak 函数,输出“我是一只狗,我的品种是 Labrador。”。这就是通过构造函数传入父类指针实现多态的一个例子。
阅读全文