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

C++ 虚函数 总结

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

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

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

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

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

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

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

    相关文章

      网友评论

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

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