码迷,mamicode.com
首页 > 其他好文 > 详细

学习:类和对象——多态

时间:2019-11-15 23:58:34      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:面向对象   说话   int   对象   基本   name   调用   oid   函数返回值   

多态的基本概念:

多态是C++面向对象三大特性之一

多态分为两类

1、静态多态: 函数重载 和 运算符重载属于静态多态,复用函数名 ,那么这个我们之前都有用到过
2、动态多态: 派生类和虚函数实现运行时多态

静态多态和动态多态区别:

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

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

示例代码:

#include<iostream>
#include<string>

using namespace std;

class Animal {
public:

    virtual void speak() { // 进行virtual修饰成员函数,变成虚函数,那么编译器在编译的时候就不能确定函数调用了。
        cout << "动物在说话" << endl;
    }
};

class Dog :public Animal{
public:
    void speak() {
        cout << "小狗在说话" << endl;
    }

};

class Cat :public Animal {
public:
    void speak() {
        cout << "小猫在说话" << endl;
    }
};

void aaa(Animal & animal) {
    animal.speak();
}

void test01() {
    Cat c1;
    aaa(c1);
    Dog d1;
    aaa(d1);
    
}

int main() {
    test01();
    system("pause");
    return 0;
}

总结:

多态满足的条件:

1、有继承关系
2、子类重写父类中的虚函数

多态使用条件:

1、父类指针或引用指向子类对象

重写:函数返回值类型 函数名 参数列表 完全一致称为重写

学习:类和对象——多态

标签:面向对象   说话   int   对象   基本   name   调用   oid   函数返回值   

原文地址:https://www.cnblogs.com/zpchcbd/p/11870079.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!