构造函数传入父类指针的完成示例
时间: 2023-07-20 10:08:37 浏览: 82
假设我们有一个父类 `Animal` 和一个子类 `Dog`,我们想在 `Dog` 类中传入父类指针,可以按照以下示例完成:
```c++
class Animal {
public:
void eat() {
std::cout << "Animal is eating." << std::endl;
}
};
class Dog : public Animal {
public:
Dog(Animal* parent) {
m_parent = parent;
}
void bark() {
std::cout << "Dog is barking." << std::endl;
}
void eat() {
std::cout << "Dog is eating." << std::endl;
m_parent->eat(); // 调用父类的 eat 函数
}
private:
Animal* m_parent;
};
int main() {
Animal* animal = new Animal();
Dog* dog = new Dog(animal);
dog->bark();
dog->eat();
return 0;
}
```
在 `Dog` 的构造函数中,我们将传入的父类指针存储到 `m_parent` 变量中。在 `Dog` 的 `eat` 函数中,我们调用了父类的 `eat` 函数,只需要使用 `m_parent->eat()` 即可。在 `main` 函数中,我们创建了一个 `Animal` 对象和一个 `Dog` 对象,并将 `Animal` 对象的指针传入了 `Dog` 的构造函数中。最后,我们调用了 `Dog` 的 `bark` 和 `eat` 函数。
阅读全文