首页文章正文

静态函数不能是虚函数,虚函数可以实现静态多态

虚函数的引入主要是为了实现多态 2023-12-31 15:35 933 墨鱼
虚函数的引入主要是为了实现多态

静态函数不能是虚函数,虚函数可以实现静态多态

(°ο°) 修饰函数:被static修饰过的函数就是静态函数,静态函数只能在本⽂件中使⽤,不能被其他⽂件调⽤,也不会和其他⽂件中的同名函数冲突。情况和修饰全局变量类似。修饰类:在类中,被stati可以把静态成员函数看作是“命名空间受限的普通函数”,所以它不能有运行时多态

现有静态分析函数调用关系的方法不能准确分析函数指针和虚函数的调用,影响了其分析结果的准确性. 针对这一问题本文提出了一种基于控制流图(Control Flow Graph, CFG)的函静态成员函数只有一个拷贝,所有对象都可以用,并不在对象实例中重复出现;虚函数的父本在基类中定义,不同版本则在派生类中重新定义,静态成员函数传不到派生类中

2、有虚函数指针,必须要先有对象,若对象不存在,则vfptr必定不存在,若连构造函数还没调用,则必没有对象,就是说必须先有构造函数,才有对象,所以构造函数不能为虚3. 静态函数不能被虚函数覆盖,因为虚函数是通过对象实例调用的,而静态函数没有对象实例。4. 静态函数在内存中只有一份拷贝,不随对象的创建而增加。这使得静态函数更节省内存

↓。υ。↓ 考题()只能访问静态成员变量,静态成员函数和类以外的函数和数据不能访问类中的非静态成员变量。A、静态函数B、虚函数C、构造函数D、静态成员函数查看答案静态函数不能是虚函数类的静态成员初始化:必须在类声明的外部初始化;初始化时不能加static 内存分配:在类外初始化时分配内存访问:可以通过对象或类来访问

+△+ 对于静态成员函数,它没有this指针,所以无法访问vptr. 这就是为何static函数不能为virtual。虚函数的调用关系:this -> vptr -> vtable ->virtual function 通定义为virtual的函数是基类期待派生类重新定义的,基类希望派生类继承的函数不能定义为虚函数。二、作用虚函数的作用是实现动态联编,也就是在程序的运行阶段动

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

标签: 虚函数可以实现静态多态

发表评论

评论列表

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