zoukankan      html  css  js  c++  java
  • c++ virtual总结

    virtual-关键字用于修饰成员函数时,有以下特性

    1.用于修饰的基类的成员函数,被修饰的基类成员函数-其派生类的同名成员函数也默认带有virtual 关键字
    2.当virtual 用于修饰析构函数(被称为虚析构函数)时,父对象析构时同时会将子对象析构
    3.当virtual 用于修饰成员函数(被称为虚函数)
    虚函数有以下限制
    ① 类多态实现(使用同一对象(不同参数),同一方法->不同结果)
    ② 构造函数不能 加 virtual
    ③ 普通函数不能 加 virtual
    ④ 类中static 修饰的函数不能 加 virtual


    virtual-关键字用于修饰继承类(又称为虚基类)
    当遇到"菱形继承"(多继承的两个或以上父级 继承同一个祖级时)

    继承方式如图:

          A 
       /      
      B       C 
            / 
          D

    这样在构造最终派生类时,会出现最终派生类中含有多个同一个基类的情况,就会产生二义性的问题(不知道该调用哪个基类的成员变量和函数),为解决此问题,需要使用虚基类,即只对此基类生成一块内存区域,这样最终派生类中就只会含有一个基类了

  • 相关阅读:
    洛谷提高组比赛day2
    清北合肥day2-day5
    高精度开根
    清北合肥day1
    愤怒的小鸟
    蓝书图论题
    替罪羊树&&非旋treap
    【bzoj4811】[Ynoi2017]由乃的OJ 树链剖分+线段树区间合并
    【bzoj3866】The Romantic Hero dp
    【bzoj3747】[POI2015]Kinoman
  • 原文地址:https://www.cnblogs.com/zjhblogs/p/7641056.html
Copyright © 2011-2022 走看看