首页 > 编程语言 > 详细

C++多态的使用

时间:2021-05-01 22:56:35      阅读:46      评论:0      收藏:0      [点我收藏+]

一、多态有静态多态和动态多态:

1、静态多态:函数重载和运算符重载属于静态多态,复用函数名

2、动态多态:派生类和虚函数实现运行时多态

二、静态多态和动态多态的区别

1、静态多态函数地址早绑定:在编译阶段确定函数地址

2、动态多态的函数地址晚绑定:运行阶段确定函数地址

三、动态多态满足条件

1、有继承关系

2、子类重写父类虚函数

四、动态多态的使用

父类的指针或者引用 执行子类对象

 

代码:

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
class Animal
{
public:
    virtual void speak()
    {
        printf("Animal is Speaking\n");
    }
};
class dog : public Animal
{
public:
    virtual void speak()    //这里的virtual可写可不写
    {
        printf("dog is Speaking\n");
    }
};
class cat : public Animal
{
public:
    virtual void speak()    //这里的virtual可写可不写
    {
        printf("cat is Speaking\n");
    }
};
void test1(Animal &a)
{
    a.speak();
}
void test2(Animal *a)
{
    a->speak();
}
int main()
{
    dog g;
    cat t;
    test1(t);
    dog * ptr = &g;
    test2(ptr);
    return 0;
}

 

C++多态的使用

原文:https://www.cnblogs.com/kongbursi-2292702937/p/14724847.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!