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

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


哈士奇WWW
浏览 694回答 3
3回答

慕虎7371278

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

侃侃尔雅

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

慕的地8271018

不能。虚函数是为了实现多态而提出的概念,多态就是用子类的对象指针调用函数时是调用子类函数还是调用基类函数,当基类中的函数定义为虚函数时,再用子类中的对象指针调用时,就调用的是子类函数。static定义的函数是属于类的,无法用对象或对象指针来调用,也就不存在多态的概念,因而静态函数若定义为虚函数就是非法的。
打开App,查看更多内容
随时随地看视频慕课网APP