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

榆次网站建设公司邢台本地信息网

榆次网站建设公司,邢台本地信息网,vue手机网站开发,wordpress模板2zzt18. 让接口容易被正确使用#xff0c;不易被误用 18.1 好的接口很容易被正确使用#xff0c;不容易被误用。你应该在你的所有接口中努力达成这些性质。任何接口如果要求客户必须记得做某些事情#xff0c;就有着不正确使用的倾向。 18.2 促进正确使用不易被误用 18.1 好的接口很容易被正确使用不容易被误用。你应该在你的所有接口中努力达成这些性质。任何接口如果要求客户必须记得做某些事情就有着不正确使用的倾向。 18.2 促进正确使用的办法包括接口的一致性以及与内置类型的行为兼容(尽量令你的types的行为与内置types一致)。 18.3 阻止误用的办法包括建立新类型、限制类型上的操作(什么事可做什么事不能做)、限制对象值、以及消除客户的资源管理责任。 18.4 std::tr1::shared_ptr支持定制型删除器这可防范DLL问题可被用来自动解除互斥锁等等。 对象在一个DLL中被new却在另一个DLL被delete会导致运行期错误。使用shared_ptr的成本是Boost的shared_ptr是原始指针的两倍大。 19. 设计class犹如设计type class的设计就是type的设计。在定义一个新的type之前请仔细考虑一下问题 a. 新type的对象应该如何被创建和销毁 b. 对象的初始化和对象的赋值该有什么样的差别 c. 新type的对象如果被passed by value(值传递)意味着什么 d. 什么是新type的合法值  e. 新type需要配合某个继承图系吗(考虑继承与被继承) f. 新type需要什么样的转换 g. 什么样的操作符和函数对此新type而言是合理的 h. 什么样的标准函数应该驳回(声明为private) i. 谁该取用新type的成员 j. 什么是新type的未声明接口(如何保证效率异常安全性资源运用) k. 新type有多么一般化如果是定义types家族应该定义一个新的类模板。  l. 你真的需要一个新type吗非成员函数或模板能否解决问题 20. 宁以pass-by-reference-to-const替换pass-by-value 20.1 尽量以pass-by-reference-to-const替换pass-by-value。前者比较高效(少了对参数对象的构造和析构)并可避免切割问题(父类作传值参数时子类的信息被切除)。 20.2 这个规则不适用于内置类型以及STL的迭代器和函数对象。对它们而言 pass-by-value往往比较适当。 21. 必须返回对象时别妄想返回其引用 21.1 当你必须在返回一个引用和返回一个对象之间选择时你的工作就是挑出行为正确的那个剩下的交给编译器。 21.2 绝对不要返回指向一个local stack(局部栈内)对象的指针或引用因为离开作用域后这个对象就不存在了。不要返回指向一个堆分配对象的引用何时delete是个问题。不要返回指向一个local static对象的指针或引用 可能面临需要多个这样的静态对象的问题。 22. 将成员变量声明为private 22.1 切记将成员变量声明为private。因为将变量隐藏在函数接口背后 a. 赋予客户访问数据的一致性(都通过成员函数)。 b. 可细微划分访问控制(只读、只写、可读写、不可访问)。 c. 提供充分的实现弹性。例如保证约束条件通知其它对象多线程同步等等。 d. 保留了日后变更实现的权力。 22.2 只有两种访问权限private(封装)和其它(不封装)。protected并不比public更具封装性。  23. 宁以non-member non-friend替换成员函数 a. 增加封装性不会增加能够访问私有成员的函数数量。 b. 包裹弹性(packaging flexibility)降低编译依赖度。 c. 机能扩充性将所有便利(工具)函数放在多个头文件内但隶属于同一个命名空间让客户可 以轻松扩展这一组便利函数(添加non-member non-friend函数)。  24. 若所有参数皆需类型转换请采用non-member函数 如果函数每个实参都需要转换特别是隐式转换应该声明为非成员函数。 不能够只因函数不该成为member就让它称为friend。 25. 考虑写出一个不抛出异常的swap函数 25.1 当std::swap对你的类型效率不高时提供一个public的swap成员函数并确保这个函数不抛出异常。因为高效率的swap总是基于对内置类型的操作内置类型操作不会抛出异常。 25.2 如果你提供一个成员函数swap那也应该提供一个非成员函数swap来调用前者。对于classes(而非templates)也请特化std::swap。template表示全特化。templatetypename T表示部分特化。 25.3 调用swap时应针对std::swap使用using声明式然后调用swap并且不带任何命名空间资格修饰。让编译器决定调用合适的swap函数。 25.4 为用户定义类型进行std template全特化是好的但千万不要尝试在std内加入某些对std而言全新的东西。因为会导致不可预期行为std的内容完全由c标准委员会决定。
http://www.zqtcl.cn/news/7476/

相关文章:

  • 在线视频网站a一级爰a做免费网站前台用什么开发
  • 备案的网站程序上传自适应网页和响应式网页区别
  • 网站建设设置背景图片周口公司做网站
  • 新浪云 建设网站饮食网站模板
  • 用新浪云做网站沧州网站制作的流程
  • 上海做网站报价网页设计版心常用尺寸
  • 山东青岛网站建设scala做网站
  • seo手机端优化seo研究中心培训机构
  • 网站开发实施方案广州花都区网站建设
  • win7建设网站彭水县网站开发
  • 网站建设都包括什么科目成都住建局官网网签
  • 对于协会的新年祝贺语网站模板wordpress扫码跳转
  • 网站备注查询seo排名点击软件
  • 网站开发 电话安庆市大观区城乡建设局网站
  • 复古风格网站WordPress moe acg
  • 珠海做网站制作济南企业网站关键词推广
  • 凡高网站建设广告营销是什么意思
  • 选择邯郸网站建设php网站源码架构
  • 站酷网手机版互联网项目网站
  • 网站如何做宣传推广wordpress 云盘
  • 网站设计前景房屋设计在线设计网站
  • 网站推广含义怎么建一个视频网站做推广
  • 宁波网站开发建设推广app赚佣金平台
  • wordpress商业站网站设计岗位的职责与要求
  • 电子商务网站建设实训 报告关键词排名推广方法
  • 镜像网站怎么做排名wordpress 多用户博客
  • 西宁网站seo价格wordpress 登陆 插件下载
  • 新增备案 网站名字湖北省建设厅网站如何申诉
  • 做宠物的网站有哪些找设计师做网站
  • 劳务 东莞网站建设伊川县住房和城乡建设厅网站