c++程序实例继承与多态练习题
时间: 2023-08-16 14:21:14 浏览: 166
好的,我可以为你提供一个简单的继承与多态的练习题,希望能帮助你巩固相关知识。
假设有一个图形类 Shape,其中包含一个纯虚函数 getArea(),用于计算该图形的面积。现在要定义两个子类,分别是矩形类 Rectangle 和圆形类 Circle。请完成以下任务:
1. 定义 Shape 类:
```c++
class Shape {
public:
virtual double getArea() = 0; // 纯虚函数
};
```
2. 定义 Rectangle 类,继承自 Shape 类,包含两个成员变量 width 和 height,以及实现 getArea() 函数的具体方法:
```c++
class Rectangle : public Shape {
private:
double width;
double height;
public:
Rectangle(double w, double h) {
width = w;
height = h;
}
double getArea() {
return width * height;
}
};
```
3. 定义 Circle 类,同样继承自 Shape 类,包含一个成员变量 radius,以及实现 getArea() 函数的具体方法:
```c++
class Circle : public Shape {
private:
double radius;
public:
Circle(double r) {
radius = r;
}
double getArea() {
return 3.1415926 * radius * radius;
}
};
```
4. 在主函数中创建一个 Shape 指针数组,分别指向一个 Rectangle 和一个 Circle 对象,并计算它们的面积:
```c++
int main() {
Shape* shapes[2];
shapes[0] = new Rectangle(4, 5);
shapes[1] = new Circle(3);
for (int i = 0; i < 2; i++) {
cout << "Area of shape " << i << ": " << shapes[i]->getArea() << endl;
delete shapes[i];
}
return 0;
}
```
以上就是一个简单的继承与多态的练习题,希望能够帮助你巩固相关知识。
阅读全文