多态的定义和作用

1多态(polymorphism)的定义
多态是面向对象的必备特性,指的是同一接口的不同实现方式,多态允许基类的指针指向子类方法。在C++中通过虚函数实现。

2多态的作用
1不必编写每一子类的功能调用,可以直接把不同子类当父类看,屏蔽子类间的差异,提高代码的通用率/复用率
2父类引用可以调用不同子类的功能,提高了代码的扩充性和可维护性

  • 10
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
是面向对象编程中的一个重要概念,它允许使用基类指针或引用来调用派生类的成员函数,实现动绑定。通过多,可以实现基于对象的类型来确定要调用的成员函数,而不是变量的类型。 下面是多定义和示例代码: 定义: 1. 多是通过虚函数(virtual function)和基类指针(或引用)来实现的。 2. 在基类中,通过在成员函数声明前加上`virtual`关键字来声明虚函数。 3. 派生类可以选择重写(覆盖)基类的虚函数,以便提供自己的实现。 4. 使用基类指针或引用来调用虚函数时,会根据对象的实际类型来决定要调用的函数。 示例代码: ```cpp #include <iostream> class Shape { public: virtual void draw() { std::cout << "Drawing a shape." << std::endl; } }; class Circle : public Shape { public: void draw() override { std::cout << "Drawing a circle." << std::endl; } }; class Rectangle : public Shape { public: void draw() override { std::cout << "Drawing a rectangle." << std::endl; } }; int main() { Shape* shape1 = new Circle(); Shape* shape2 = new Rectangle(); shape1->draw(); // 调用派生类Circle的draw函数 shape2->draw(); // 调用派生类Rectangle的draw函数 delete shape1; delete shape2; return 0; } ``` 在上述示例中,我们定义了一个基类`Shape`和两个派生类`Circle`和`Rectangle`。基类中声明了一个虚函数`draw()`,并在派生类中进行了重写。 在`main()`函数中,我们创建了两个基类指针`shape1`和`shape2`,分别指向派生类`Circle`和`Rectangle`的对象。通过这些指针调用虚函数`draw()`时,会根据对象的实际类型来决定要调用的函数。因此,`shape1->draw()`调用派生类`Circle`的`draw()`函数,`shape2->draw()`调用派生类`Rectangle`的`draw()`函数。 多实现了运行时的动绑定,使我们能够根据对象的实际类型来执行相应的操作。这样可以增加代码的灵活性和可扩展性,使得程序更加易于维护和扩展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值