设计一个类族,在子类中定义与父类相同的函数,用不同类的对象进行 函数的调用。
时间: 2024-03-08 12:47:33 浏览: 115
好的,让我为您提供一个示例程序来演示如何在子类中定义与父类相同的函数,用不同类的对象进行函数的调用。
```c++
#include <iostream>
using namespace std;
// 父类
class Shape {
public:
virtual void draw() {
cout << "This is a shape." << endl;
}
};
// 子类1
class Circle : public Shape {
public:
void draw() {
cout << "This is a circle." << endl;
}
};
// 子类2
class Square : public Shape {
public:
void draw() {
cout << "This is a square." << endl;
}
};
// 子类3
class Triangle : public Shape {
public:
void draw() {
cout << "This is a triangle." << endl;
}
};
int main() {
Shape *shape1 = new Circle();
Shape *shape2 = new Square();
Shape *shape3 = new Triangle();
shape1->draw();
shape2->draw();
shape3->draw();
delete shape1;
delete shape2;
delete shape3;
return 0;
}
```
上面的程序中,我们定义了一个父类Shape和三个子类Circle、Square、Triangle。在父类Shape中,我们定义了一个虚函数draw,然后在三个子类中分别重写了这个函数,并输出不同的信息。在主函数中,我们创建了三个指向Shape类型的指针,分别指向三个子类的对象,并分别调用了这些对象的draw函数,然后将指针释放掉。
当我们运行上面的程序时,会输出以下结果:
```
This is a circle.
This is a square.
This is a triangle.
```
从结果可以看出,尽管三个子类中都重写了父类Shape中的虚函数draw,但是分别调用它们的draw函数时,会输出不同的信息,这是因为我们用不同的类的对象进行了函数的调用。
这就是一个简单的示例,演示了如何在子类中定义与父类相同的函数,用不同类的对象进行函数的调用。希望这个示例可以帮到您。
阅读全文