C++11中多态和虚函数、override说明符的示例分析
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,这篇文章主要介绍C++11中多态和虚函数、override说明符的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!多态和虚函数多态是C++的重要特征之一,同时也是初学者比
千家信息网最后更新 2024年11月23日C++11中多态和虚函数、override说明符的示例分析
这篇文章主要介绍C++11中多态和虚函数、override说明符的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
多态和虚函数
多态是C++的重要特征之一,同时也是初学者比较难理解的特征。先来看一个简单的例子:
代码很简单,按照作者自己的话描述一下上述代码中多态从定义到起作用的要点,应该不会再简单了,从main函数看起:
基类的指针
指向派生类的对象
派生类覆盖了基类中定义的虚函数
这三点是必要条件,缺一不可。
上面的代码还有另外一些有有意思的地方,虽然不影响结果,但还是了解一下为好。派生类中重新定义(覆盖)基类中虚函数时:
virtual关键词不是必须
不必将函数声明为public
覆盖失败的情况
虚函数的覆盖要求两个函数的签名必须一致。例如下面的代码:
由于sub2::f1的签名和base::f1的签名不一致,所以无法实现多态。
也许你会觉得这个错误太明显了,根本不会发生。那是因为本例中的成员函数太简单了。在实际的开发中随着开发规模的扩大,类的继承关系会变得越来越深,成员函数的参数也会越来越多,经常会遇到派生类中定义的成员函数的签名和覆盖对象的签名不一致的而导致覆盖失败的情况。
而且要命的是,这种错误不会产生编译错误,不容易被发现。
override说明符
为了解决这个问题,C++11中引入了一个方法:在声明、定义派生类中的覆盖函数时使用override说明符:
由于明确的函数的用意,所以当编译器无法在基类中找到相同签名的虚函数的时候,就会产生编译错误。
以上是"C++11中多态和虚函数、override说明符的示例分析"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!
函数
多态
说明符
代码
错误
一致
成员
编译
示例
分析
内容
对象
情况
特征
篇文章
面的
越来
开发
明显
相同
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
江西网络安全会
安庆门店管理软件开发公司
微信图片可以从服务器恢复么
网络安全 国际形势
SQL数据库分页函数
福建网络技术服务口碑推荐
小额借贷软件开发
数据库不允许物理删除
刺激战场高级服务器怎么下载
宁夏服务器虚拟化解决方案
access数据库端口
财政局网络安全工作要点
可用域服务器数量
网络安全的手抄报字数少
网络安全人才守护国家安全
gj计算机网络安全中心
网络安全使用情况记录表
网络安全方面的视频
徐汇区上门软件开发厂家职责
伪装ip的大流量服务器
保定长城网络技术有限公司
数据库怎么根据时间查询总和
做软件开发需要什么电脑
苹果提高网络安全吗
湖南海拔互联网科技有限公司
一个实例可以建几个数据库
软件开发手段
国家网络安全宣传活动PPT
云南软件开发报价
从数据库中查出的数据顺序