当前位置: 首页 > news >正文

海南网站建设网站开发小程序app互站网

海南网站建设网站开发小程序app,互站网,安徽商城网站建设,石家庄最新轨迹多态一定会成功吗 因为逻辑是用户编写的,那么肯定会有遗漏的地方,那就要规则来限制。就比如多态,都知道条件之一是子类重写了父类的虚函数,但是如果子类没有严格遵守这个规则,就无法达到目的。就比如这个代码&#xf…

多态一定会成功吗

因为逻辑是用户编写的,那么肯定会有遗漏的地方,那就要规则来限制。就比如多态,都知道条件之一是子类重写了父类的虚函数,但是如果子类没有严格遵守这个规则,就无法达到目的。就比如这个代码:

class A {
public:virtual void aaa(int i) const{cout << "aaa" << endl;}};
class B :public A {virtual void aaa(int i) {cout << "bbb" << endl;}
};
void help(A& a){a.aaa(11);
}
int main(){B b;help(b);return 0;
}

刚开始看会以为这是个多态,但其实这并不是,会打印aaa而不是bbb。

为什么呢?因为aaa函数并没有被严格地重写:const属性丢失了。

这其实挺难发现的,因为编译器也并不会去给我们指出来,毕竟多态也并不是一定要实现。

所以这时候就体现override的作用,添加override后:

在这里插入图片描述

还有一种好处是:能让人知道这个函数是重写并且是用作多态的。

虽然子类直接覆盖父类的虚函数但是不加virtual也能达到多态:

// 输出bbb
class A {
public:virtual void aaa(int i){cout << "aaa" << endl;}};
class B :public A {void aaa(int i){cout << "bbb" << endl;}
};

但是这样会更直观:

// 输出bbb
class A {
public:virtual void aaa(int i){cout << "aaa" << endl;}
};
class B :public A {void aaa(int i) override{cout << "bbb" << endl;}
};
http://www.yayakq.cn/news/318565/

相关文章:

  • 网站建设协议搭建微信小程序需要服务器吗
  • o2o网站设计公司上海市建设工程信息报送网站
  • 装修网站设计案例邢台做外贸网站
  • 建筑设计网站app2015做导航网站有哪些
  • wordpress 动态js搜外seo
  • 谷歌网站质量指南博客网站素材
  • 太原网站制作策划不花钱怎么做网站运营
  • 中国建设工程造价管理协会网站查询免费的网站搭建平台
  • 金坛住房和城乡建设局网站网站建设与管理指什么
  • 文本文档做网站怎么加图片网站建设南昌
  • thinkphp做的上线网站项目管理的主要内容包括哪些
  • 网站 图标 gif怎么把网页放到网站上
  • 个人接网站开发的平台宁波市城市建设档案馆网站
  • 北京响应式网站免费咨询服务期
  • seo资源网站 排名微信购物商城小程序
  • 企业建设网站的过程和预算表深圳商城网站建设报价
  • 小公司简介ppt介绍范本seo培训机构排名
  • 江西网站搜索引擎优化企业网站报备
  • 旅游网站设计背景百度贴吧免费发布信息
  • dw6做网站HTML模板怎么导入WordPress
  • 企业网站优化面向什么工作网站设计做哪些的
  • 做设计需要知道的几个网站吗凡科二级网站怎么做
  • 北京外贸网站优化怎样免费建个人网站
  • 淄博建站哪家好重庆梁平网站建设哪家好
  • html 旅游网站做推广哪个平台效果好
  • 采购网站平台找资源
  • 企业网站流程图杭州品格网站设计
  • 外包网站会自己做原型吗客源汇软件效果怎么样
  • 信息系统的网站开发答辩问题小说网站开发流程
  • 营销型网站代理单机网页制作工具