C++ 一个父类调多个字类的方法
时间: 2024-02-16 16:05:28 浏览: 57
在C++中,我们可以使用多态性实现一个父类调用多个子类的方法,具体实现方法如下:
假设有一个名为`Parent`的父类,和两个子类`Child1`和`Child2`,可以先创建一个`Parent`类的指针变量,然后分别用它指向不同的子类对象,从而调用子类的方法。例如:
```c++
#include <iostream>
using namespace std;
class Parent{
public:
virtual void method(){
cout << "Parent method called" << endl;
}
};
class Child1 : public Parent{
public:
void method(){
cout << "Child1 method called" << endl;
}
};
class Child2 : public Parent{
public:
void method(){
cout << "Child2 method called" << endl;
}
};
int main(){
Child1 c1;
Child2 c2;
Parent *p;
// 子类调用自己的方法
c1.method(); // 输出 "Child1 method called"
c2.method(); // 输出 "Child2 method called"
// 父类调用子类的方法
p = &c1;
p->method(); // 输出 "Child1 method called"
p = &c2;
p->method(); // 输出 "Child2 method called"
return 0;
}
```
在上面的代码中,我们首先定义了一个`Parent`类和两个子类`Child1`和`Child2`。然后我们创建了两个子类的对象`c1`和`c2`。我们可以直接用子类的对象来调用子类的方法。接着我们定义了一个`Parent`类的指针变量`p`,用于指向不同的子类对象,然后通过这个指针变量来调用子类的方法。我们可以发现,通过这种方式,我们可以实现一个父类调用多个子类的方法。
阅读全文