zoukankan      html  css  js  c++  java
  • C++ 虚函数、多态、为什么需要虚拟析构函数

    1、类的对象通过一个虚函数表vftb来维护类中所有的虚函数,vftb相当于一个元素类型为函数指针的数组

    2、派生类继承基类中的虚函数,如果没有在派生类中重新定义虚函数,则虚函数表中相同虚函数的地址值是相同的,否则,不相同

    3、派生类如果想重新定义基类中的虚函数,则派生类中虚函数的申明与基类相同,定义不同

    4、虚函数实现了晚期绑定技术,普通的成员函数的调用直接在编译阶段就确定了,而虚函数则在编译时生成:对象-》虚函数表-》函数的形式,因此只有动态运行根据具体的对象来调用函数

    5

     5、C++ 通过虚函数来实现多态,可以将派生类的地址值赋给基类的指针、可以将派生类的值赋给基类的引用。这种情况下指针或引用与所指向的对象与引用的对象类型不一致,这在C语 言  中是不允许的。C++通过这种方式来实现的多态,即根据运行时来确定对象调用哪个函数,即函数的调用取决于指针或引用所指向或引用对象的值,而不是指针或引用的类型

     6、为什么需要虚拟析构函数?

      

  • 相关阅读:
    Vue知识总结
    Excel使用技巧
    java框架总结
    java反射学习总结
    java虚拟机
    vue学习知识
    mysql索引知识
    前端函数定义及表格总结
    SpringMVC异常处理
    restful风格的概念
  • 原文地址:https://www.cnblogs.com/guoyuanwei/p/3020587.html
Copyright © 2011-2022 走看看