码迷,mamicode.com
首页 > 编程语言 > 详细

c++ virtual总结

时间:2017-10-09 15:28:41      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:log   virt   派生类   class   pre   析构   情况   使用   多个   

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

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


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

继承方式如图:

      A 
   /     \ 
  B       C 
   \     / 
      D

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

c++ virtual总结

标签:log   virt   派生类   class   pre   析构   情况   使用   多个   

原文地址:http://www.cnblogs.com/zjhblogs/p/7641056.html

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