C++--多态

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


前言

战地黄花分外香


一、多态定义

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

二、虚函数

虚函数使用的其核心目的是通过基类访问派生类定义的函数。所谓虚函数就是在基类定义一个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;
}

在这里插入图片描述

四、重写/重载/重定义

1.重写

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

2.重载

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

3.重定义

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

五、小结

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

总结

善于总结,多进一步。

猜你喜欢

转载自blog.csdn.net/m0_51988927/article/details/126746109