为了账号安全,请及时绑定邮箱和手机立即绑定

基类中static定义的函数能否为虚函数为什么?

基类中static定义的函数能否为虚函数为什么?

哈士奇WWW 2019-02-05 10:06:47
基类中static定义的函数能否为虚函数为什么
查看完整描述

3 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

不能。成员函数不可同时为virtual和static。
多态实现的基本原理是每个带有virtual函数的类的【实例】要包含一个指针,指向虚函数表(vtbl)。
static函数做为类函数,不与任何【实例】相关,自然无法实现多态了。

查看完整回答
反对 回复 2019-03-20
?
侃侃尔雅

TA贡献1801条经验 获得超15个赞

不能为虚函数,类只是限定了静态函数的可见性,基类和派生类共享一个静态函数,无法被重载和改写。

查看完整回答
反对 回复 2019-03-20
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

不能。虚函数是为了实现多态而提出的概念,多态就是用子类的对象指针调用函数时是调用子类函数还是调用基类函数,当基类中的函数定义为虚函数时,再用子类中的对象指针调用时,就调用的是子类函数。static定义的函数是属于类的,无法用对象或对象指针来调用,也就不存在多态的概念,因而静态函数若定义为虚函数就是非法的。

查看完整回答
反对 回复 2019-03-20
  • 3 回答
  • 0 关注
  • 692 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信