美文网首页
C++ 虚函数 总结

C++ 虚函数 总结

作者: linanwx | 来源:发表于2017-12-14 13:53 被阅读0次

虚函数是 C++ 实现多态的方式。

  • 什么是多态?
    多态性常被视为自封装和继承之后,面向对象的编程的第三个支柱。
    如果举一个简单的例子,比如有动物(Animal)之类别(Class),而且由动物继承出类别鸡(Chicken)和类别狗(Dog),并对同一源自类别动物(父类别)之一消息有不同的响应,如类别动物有“叫()”之动作,而类别鸡会“啼叫()”,类别狗则会“吠叫()”,则称之为多态。
    根据维基百科上所解释,多态可定义为,“一种将不同的特殊行为和单个泛化记号相关联的能力”,是指计算机程序运行时,相同的消息可能会送给多个不同的类别之对象,而系统可依据对象所属类别,引发对应类别的方法,而有不同的行为。简单来说,所谓多态意指相同的消息给予不同的对象会引发不同的动作称之。

虚函数是动态多态,在运行时决定,只有在程序运行时才决定调用基类的还是子类的,系统会根据基类指针所指向的对象来决定要调用的函数。

  • 如何声明虚函数?
    在声明前加上virtual关键字来声明虚函数。在父类中声明,在子类中做具体实现。

  • 什么是纯虚函数?
    纯虚函数是在声明虚函数时赋值为0的函数,使用这种声明方式后,继承类必须对该虚函数做实现。

  • 虚函数是如何实现的?
    通过虚表来实现的。每个对象里有虚表指针,指向虚表。虚表实质上是一个数组而不是什么链表。虚函数的地址按照声明顺序依次存放在虚表中。

相关文章

  • C++ 虚函数 总结

    虚函数是 C++ 实现多态的方式。 什么是多态?多态性常被视为自封装和继承之后,面向对象的编程的第三个支柱。如果举...

  • C++ 虚函数

    C++ 虚函数 虚函数 基类中使用virtual关键字声明的函数,称为虚函数。虚函数的实现,通过虚函数表来实现的。...

  • c++面试问题总结

    1.c++面试问题总结:(1)空类的大小,仅含有虚函数类的大小(2)析构函数声明为虚函数的作用(3)C++多态的实...

  • C++学习笔记

    C++面对对象 实函数,虚函数,纯虚函数,函数重写 虚函数:需要进行子类的重写时。virtual void 函数名...

  • (Boolan) 面向对象高级编程(下)第四周笔记

    一、虚函数表 对C++ 虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)...

  • 查漏补缺

    C++虚函数: 多态: 静态多态(重载)、动态多态(虚函数) 虚函数 虚函数表:编译器为每个类创建了一个虚函数表...

  • C++ 虚函数本质

    C++ 虚函数本质

  • pwnable.kr之uaf && c++虚函数

    c++的逆向还是要熟悉下。 一、关于c++虚函数 虚函数使得c++能够实现多态,每个类有一个虚表,每个对象在实现的...

  • (Boolan) 面向对象高级编程(下)第四周笔记

    一、虚函数表 对C++虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来...

  • C++中的(纯)虚函数

    简介 本章节会介绍在C++中虚函数及纯虚函数的主要作用,C++也是通过虚函数实现动态绑定,本小节不会去讲述动态绑定...

网友评论

      本文标题:C++ 虚函数 总结

      本文链接:https://www.haomeiwen.com/subject/bwtzvxtx.html