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

好搜网站提交入口冠县建设局网站

好搜网站提交入口,冠县建设局网站,界面设计的流程,电商培训教材附录C 关键字浅谈 在C11标准中(C11.2.12)总共定义了73个关键字(keyword)、2个“准”关键字(identifiers with special meaning)和11个操作符替代字(alternative representation)[1]。…

附录C 关键字浅谈

在C++11标准中(C++11.2.12)总共定义了73个关键字(keyword)、2个“准”关键字(identifiers with special meaning)和11个操作符替代字(alternative representation)[1]。

虽然 C++标准中的关键字很多,但并不都是有用的,有些已经被废弃,有些因使用不当则会导致“代码坏味”,作者将谈谈自己在多年开发过程中对它们的一些认识,仅作一家之言。

  1. 废弃的关键字
    register。它已经在C++11里被正式废弃,现在的C++代码中不应该再出现这个单词。

  2. 停用的关键字
    export。C++98引入这个关键字,它在C++11中被停用但保留。

  3. 建议不使用的关键字
    C++从C中继承了很多关键字,所以它也继承了C语言面向过程的一些缺点,有些关键字应当慎用或不用,这样可以很好地避免“反模式”,绕过一些容易令人困惑的陷阱。

goto。首当其冲的当然是 goto,它带来的流程混乱问题已经众所 周知,应当使用 breakcontinuereturn 等关键字来控制程序流程, 让代码逻辑更清晰。

switch-case。多分支开关语句同样会导致代码难以理解,不利 于维护,在面向对象的语言里可以用状态模式来消除 switch-case 的使 用,也可以用if+returnmap+function来替代switch-case语句。

else。滥用if-elseif-else的多重嵌套是与switch-case同样 令人厌恶的存在,它引入了多个逻辑条件,使程序的流程很混乱,而 且会导致遗漏逻辑判断的隐患。消灭else关键字需要有清晰的头脑, 仔细分析业务逻辑,设计代码结构,多数情况下可以在if语句里及时 用return来结束函数。

while/dowhile{}do{}while 循环是旧时代的遗产,完全可 以用for 取代它们,而且在C++11 中,for 还支持基于范围的循环,更加安全。比较常用的无限循环while(1)也可以用更简洁的for (;;)代替。

new/delete。它们曾经的任务是取代mallocfree,但它们并没 有解决内存泄漏的根本问题,现在应该使用标准库里的智能指针和vector等容器。

  1. 建议积极使用的关键字

auto。C++11里的auto关键字能够自动推导表达式类型,为程序 员提供了以前只有编译器才拥有的能力,极大地简化了我们声明对象 时的工作,非常方便,因此应该尽量多用它。不过需要注意它的语 义,auto总是推导出“值”语义,有的时候需要使用“auto&”或“auto&&”的形式避免拷贝代价(如在 for 循环里)。

default。这个 default 不用于 switch 语句,而用于声明构造函数 或析构函数的默认实现,明确地写出它不仅可以告诉编译器也可以告 诉代码阅读者,这个类是一个“no trival”的类。

nullptr。它取代了容易引起歧义的NULL和0,是语法层面上真正的空指针,相当于其他语言里的None/Nil,使用它可以使代码获得更 强的安全性。

  1. “准”关键字

所谓“准”关键字,其实并不是关键字,它们只是普通的单词,

但能够在特定的C++语境里产生语法效果,此外没有其他的特殊含义。目前 C++标准仅定义了两个“准”关键字:finaloverride,用于类继承体系的控制,可以很好地增强表达能力,建议使用。

final。用于标识类或成员函数,禁止子类继承或重载。

override。用于标识虚函数,明确地表示成员函数重载了父类的 同名函数,避免误覆盖(overload)。

希望读者能够在今后的实践中采纳本文的建议,书写出更优雅易 读、给人看而不是给机器人看的代码。


使用 if-else 来完成全流程覆盖,不如使用 if-return 来完成筛查。

override在继承虚函数的子类声明的引号最后处表明。

map + function 是通过重载的方式,实现了 if-else逻辑选择替代方案

if-return则是另一种思路,通过反向筛选的方式,把不合格的数据剔除。从而保证了数据的安全。

状态设计模式则是更加上一层,从具体的代码逻辑层次调升到了面对对象实现方式,它有更好的可扩展性(增加继承子类),更好的私密性(单独类内管理,彼此分割),更贴合低耦合、高内聚的方式。

  • [[二十三种设计模式:状态模式]]
  • [[状态设计模式:代码介绍]]
  • [[map + function 实现替代if - else]]
  • [[C++11 新特性:default]]
http://www.yayakq.cn/news/872590/

相关文章:

  • 网站建设平台设备html爱心代码
  • 公司网站建设服务费入什么科目WordPress 站点图标链接
  • 青岛网站搭建手机网站 代码
  • 微网站模板怎么用wordpress媒体1m以上
  • 网站开发(定制)合同 模板成都的网站建设
  • 做gif图的网站新品牌进入市场的推广方案
  • 电子商务网站建设 教案揭阳网站建设策划方案
  • 程序外包网站易优系统助手插件
  • 电子商务网站开发概述凡科永久封禁了怎么办
  • app网站建设教程视频百度搜索推广平台
  • 做西餐网站图片seo优化是什么意思
  • 网站备案填写电话号码上海建筑公司排行榜
  • 域名如何指向网站为什么备案关闭网站
  • 佛山网站开发公司电话wordpress 移动主题
  • 网站链接加密宿州网站建设多少钱
  • 仿门户网站多功能js相册画廊源码 支持缩略小图浏览网店推广新技术是哪些
  • 西安知名网站建设wordpress 自定义字段插件
  • 休闲食品网站建设策划书48互联网站建设
  • 选服务好的网站建设公司中国建设银行财付通网站
  • 绍兴网站建设哪家专业app制作软件平台
  • 绿色在线网站模板下载建网站公司汽车六万公里是否累变速箱油
  • 做网站模板在哪儿找企业网站建设方案 完整版
  • 花都区水务建设管理中心官方网站云南推广
  • 如何选择网站目标关键词WordPress+百度+主动
  • 加强公司网站平台建设的意义关键词排名优化易下拉排名
  • 网站如何自己做支付广告装饰公司名字
  • 自己做网站导航页四平网站建设公司
  • 五金制品网站源码网站后台做的超链接打不开
  • 查建设施工资质的网站网站建设定制开发
  • 新乡做企业网站的公司北京网络营销