深圳C++培训
达内深圳龙华中心

139-2227-5185

热门课程

C++在什么情况下应当声明虚函数_深圳达内龙岗校区

  • 时间:2017-08-04
  • 发布:深圳C++培训班
  • 来源:达内新闻

C++在什么情况下应当声明虚函数

使用虚函数时,有两点要注意:

只能用virtual声明类的成员函数,使它成为虚函数,而不能将类外的普通函数声明为虚函数。因为虚函数的作用是允许在派生类中对基类的虚函数重新定义。显然,它只能用于类的继承层次结构中。

一个成员函数被声明为虚函数后,在同一类族中的类就不能再定义一个非virtual的但与该虚函数具有相同的参数(包括个数和类型)和函数返回值类型的同名函数。

根据什么考虑是否把一个成员函数声明为虚函数呢?主要考虑以下几点:

首先看成员函数所在的类是否会作为基类。然后看成员函数在类的继承后有无可能被更改功能,如果希望更改其功能的,一般应该将它声明为虚函数。

如果成员函数在类被继承后功能不需修改,或派生类用不到该函数,则不要把它声明为虚函数。不要仅仅考虑到要作为基类而把类中的所有成员函数都声明为虚函数。

应考虑对成员函数的调用是通过对象名还是通过基类指针或引用去访问,如果是通过基类指针或引用去访问的,则应当声明为虚函数。

有时,在定义虚函数时,并不定义其函数体,即函数体是空的。它的作用只是定义了一个虚函数名,具体功能留给派生类去添加。

需要说明的是:使用虚函数,系统要有一定的空间开销。当一个类带有虚函数时,编译系统会为该类构造一个虚函数表(virtual function table,简称vtable),它是一个指针数组,存放每个虚函数的入口地址。系统在进行动态关联时的时间开销是很少的,因此,多态性是高效的。


达内深圳校区温馨提示:如果你在阅读文章时碰到什么不清楚或不明白的地方,可以进行在线咨询;如果你需要报名,也可以通过在线预约,我们将免费为你安排,或者关注深圳达内微信公众平台:tarenasz(更多内容请点击:深圳C++培训



深圳达内
上一篇:C++牛人教你快速获取程序自身的编码_深圳达内龙岗校区
下一篇:C++有子对象的派生类的构造函数_深圳达内龙岗校区

深圳C++培训机构:C++面试中经常会被问到的面试知识点

深圳C++培训班:不要忽视C语言

深圳C++培训:C++ 网络编程初学者的开源项目

快速掌握C语言函数,C语言函数的定义和函数调用过程

选择城市和中心
贵州省

广西省

海南省