pta 多态方式实例化子类对象并调用shout方法打印输出信息
时间: 2024-01-30 17:01:39 浏览: 20
假设有一个Animal类和它的两个子类Dog和Cat,都有一个shout()方法,可以使用多态的方式实例化子类对象并调用shout()方法打印输出信息。
示例代码如下:
```c++
#include <iostream>
using namespace std;
class Animal {
public:
virtual void shout() {
cout << "Animal shouts!" << endl;
}
};
class Dog : public Animal {
public:
void shout() {
cout << "Dog barks!" << endl;
}
};
class Cat : public Animal {
public:
void shout() {
cout << "Cat meows!" << endl;
}
};
int main() {
Animal *p = new Dog();
p->shout(); // 输出:Dog barks!
p = new Cat();
p->shout(); // 输出:Cat meows!
return 0;
}
```
在上面的示例中,首先定义了一个Animal类和它的两个子类Dog和Cat,它们都有一个shout()方法。Animal类中的shout()方法被定义为虚函数,以便在子类中重写。
在main函数中,使用Animal指针p来多态地实例化Dog和Cat对象,并调用它们的shout()方法,输出不同的信息。这就是多态的魔力所在,通过父类的指针来调用子类的方法,可以根据实际情况动态地选择调用哪个子类的方法。