C++--多态

提示:本文为学习记录,若有错误,请联系作者,谦虚受教。

文章目录

  • 前言
  • 一、多态定义
  • 二、虚函数
  • 三、例子实现
  • 四、重写/重载/重定义
    • 1.重写
    • 2.重载
    • 3.重定义
  • 五、小结
  • 总结


前言

战地黄花分外香


一、多态定义

多态的概念:意思是多种形态,具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态(将相同的消息发送给不同的对象从而产生不同的状态)。

二、虚函数

虚函数使用的其核心目的是通过基类访问派生类定义的函数。所谓虚函数就是在基类定义一个virtual +未实现的函数名,在派生类里重写虚函数。

三、例子实现

class AAAAA {
public:
    virtual void BuyTicket() { cout << "购物-全价" << endl; }
};
 
class BBBBB : public AAAAA {
public:
    virtual void BuyTicket() { cout << "购物-五折" << endl; } 
};
 
void Func(AAAAA& p)
{ p.BuyTicket(); }
 
int main()
{
    AAAAA ps;
    BBBBB st;
    
    Func(ps);
    Func(st);
 
    return 0;
}

C++--多态_第1张图片

四、重写/重载/重定义

1.重写

1、两个函数分别在基类和派生类的作用域
2、函数名/参数/返回值都必须相同(协变例外)
3、两个函数必须是虚函数

2.重载

1、两个函数在同一作用域
2、函数名/参数相同

3.重定义

1、两个函数分别在基类和派生类的作用域
2、函数名相同
3、两个基类和派生类的同名函数不构成重写就是重定义

五、小结

C++中最重要的是封装、多态、继承。
多态就是将不同的消息发送给不同的对象从而产生不同的反应,实现方式,在基类中定义一个没有实现的虚函数名,就是没有任何操作的,在派生类中重写这个虚函数,后面通过调用基类的指针或者是引用虚函数来实现不同效果。

总结

善于总结,多进一步。

你可能感兴趣的:(C++,c++,开发语言)