c语言声明虚函数 c++定义虚函数

什么函数不能声明为虚函数?

inline, static, constructor ,template 函数都不能 为虚函数,而析构函数可以。

10年积累的网站制作、网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站设计后付款的网站建设流程,更有越城免费网站建设让你可以放心的选择与我们合作。

为什么呢:

inline: 编译器替换; 而虚函数是为了解决运行期间绑定。

static:class 成员; 编译期间就给class了。

constructor: 构造函数表示要生成一个class的object;假设是virtual的,那就说不知道这个实例化derived还是based的class。但是类型实例化必须在编译期确定(否则编译器不知道到底是什么对象了)

template:模板实例是在 compile-time,virtual就意味着在run-time确定。这让编译器设计者为难了,这就是说虚函数表要指向各种版本的 template function 实例,代码设计者confuse,编译器设计者也觉得蛮烦。

C语言问题虚函数的问题

虚函数的作用是可以通过基类的指针或者引用调到派生类的这个函数。

你上面的代码是演示虚函数的作用,不用去简便他。

你可以把这个程序中的virtual全部删除掉,然后再运行程序,观察一下两次结果的不一样,估计你就能理解虚函数的作用了。

C语言中什么函数不能声明为虚函数?

c语言里不管什么函数都不可以声明成虚函数的,只有c++里才可以


本文名称:c语言声明虚函数 c++定义虚函数
文章路径:http://bzwzjz.com/article/doceshe.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 营销网站建设 app网站建设 手机网站设计 成都网站建设 成都网站设计 成都企业网站建设公司 企业网站设计 网站设计制作报价 成都网站设计 定制网站建设多少钱 高端网站设计 网站建设公司 高端网站设计 重庆网站制作 网站建设 重庆外贸网站建设 营销型网站建设 营销网站建设 成都品牌网站设计 成都网站设计 企业网站建设 高端定制网站设计