提示信息

西南科技大学C++实验作业2:继承与多态的实现代码

楼上楼下 已关注

当然,我可以帮你了解如何实现继承与多态的基本概念。下面是一个简单的C++示例,展示了如何使用继承和多态性:

  1. #include <iostream>
  2. using namespace std;
  3. // 基类:Shape
  4. class Shape {
  5. public:
  6. // 虚函数:可以在派生类中重新定义
  7. virtual void draw() const {
  8. cout << "Drawing a shape." << endl;
  9. }
  10. // 虚析构函数
  11. virtual ~Shape() {
  12. cout << "Shape destroyed." << endl;
  13. }
  14. };
  15. // 派生类:Circle
  16. class Circle : public Shape {
  17. public:
  18. void draw() const override {
  19. cout << "Drawing a circle." << endl;
  20. }
  21. ~Circle() {
  22. cout << "Circle destroyed." << endl;
  23. }
  24. };
  25. // 派生类:Rectangle
  26. class Rectangle : public Shape {
  27. public:
  28. void draw() const override {
  29. cout << "Drawing a rectangle." << endl;
  30. }
  31. ~Rectangle() {
  32. cout << "Rectangle destroyed." << endl;
  33. }
  34. };
  35. void demonstratePolymorphism(const Shape& shape) {
  36. shape.draw(); // 多态性:调用适当的派生类方法
  37. }
  38. int main() {
  39. Circle circle;
  40. Rectangle rectangle;
  41. demonstratePolymorphism(circle); // 输出:Drawing a circle.
  42. demonstratePolymorphism(rectangle); // 输出:Drawing a rectangle.
  43. return 0;
  44. }

代码解释:

  1. 继承: CircleRectangle类继承自Shape类。
  2. 多态: 使用了virtual关键字来实现多态。在Shape类中,draw方法是虚函数,在派生类中重新实现了该函数。
  3. 多态性表现: demonstratePolymorphism函数中,尽管形参类型为Shape的引用,但在运行时会调用具体对象类型的draw方法。
  4. 虚析构函数: 基类Shape中定义了虚析构函数,以确保正确调用派生类析构函数,防止内存泄漏。

请根据实验要求进一步调整和丰富代码结构。确保代码符合学习内容和具体的作业要求。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
楼上楼下 关注 已关注

最近一次登录:2024-11-20 23:47:30   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图