首页文章正文

虚函数可以是静态成员函数吗,关于虚函数的描述中正确的是

虚函数如何实现多态 2023-12-06 10:15 126 墨鱼
虚函数如何实现多态

虚函数可以是静态成员函数吗,关于虚函数的描述中正确的是

注意点1:构造函数和静态成员函数不能是虚函数:静态成员函数不能为虚函数,是因为virtual函数由编译器提供了this指针,而静态成员函数没有this指针,是不受限制于虚函数,是一种特殊的成员函数,用来实现运行时多态。静态成员函数,可以不通过对象来调用,没有隐藏的this指针。virtual函数一定要通过对象来调用,有隐藏的this

简单的说静态成员函数没有this指针,所以没有虚表,不能实现虚函数的功能,因此不能是虚函数。至于为什么所以静态成员函数不能是虚函数。他们的关键区别就是this指针。构造函数不能为const函数,构造函数的目的就是为了给成员变量赋初值,不能为const函数

+^+ 那就是静态成员函数没有this指针。虚函数依靠vptr和vtable来处理。vptr是一个指针,在类的构造函数中创建生成,并且只能用this指针来访问它,因为它是类的一个成虚函数,是一种特殊的成员函数,用来实现运行时多态。静态成员函数,可以不通过对象来调用,没有隐藏的this指针。virtual函数一定要通过对象来调用,有隐藏的this

关于虚函数的描述中正确的是A)虚函数是一个静态成员函数B)虚函数是一个非成员函数C)虚函数既可以在函数说明时定义,也可以在函数实现时定义D)派生类的虚函静态成员函数是属于类的,不属于任何一个类的对象,可以通过作用域以及类的对象访问,本身就是一个实体,所以不能定义为虚函数。如果构造函数定义为虚函数,则需要

⊙0⊙ 静态成员函数不可以是虚函数。静态函数是属于类的,不属于对象本身,自然无法有自己的虚函数表指针。不能。因为静态成员函数是可以通过类名直接调用的,而虚函数1.静态成员函数:静态成员函数属于类,也属于对象,但最终属于类,在内存中只有一份,即没有this指针;而虚函数必须根据指向哪一个对象来确定调用谁的虚函数,即虚函

后台-插件-广告管理-内容页尾部广告(手机)

标签: 关于虚函数的描述中正确的是

发表评论

评论列表

灯蓝加速器 Copyright @ 2011-2022 All Rights Reserved. 版权所有 备案号:京ICP1234567-2号