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

企业网站网页制作公司排名

企业网站,网页制作公司排名,如何做地方门户网站,上海专业的网站建条例24 若所有参数皆需要类型转换,请为此采用非成员函数 有时候让类型内成员函数支持隐式类型转换是不妥善的。比如当我们想在类内实现operator *() 模拟乘法的时候。通常情况下表现良好,但若你想额外实现混合式运算。例如 int…

条例24

若所有参数皆需要类型转换,请为此采用非成员函数

  • 有时候让类型内成员函数支持隐式类型转换是不妥善的。比如当我们想在类内实现operator *() 模拟乘法的时候。通常情况下表现良好,但若你想额外实现混合式运算。例如 
    int ret = 2 * (成员对象);//错误int ret = (成员对象)*2;//正确

    就会出现问题,因为成员函数会通过this指针去调用。下面的写法通你自己实现的对象能找到你自己实现的*操作符重载,但是整数2找不到对应的*操作符操作。之所以第二种写法能通过编译是因为默认允许了隐式类型转换,在 operator * 遇到了 整数 2 的时候,会自动将整数2 调用构造函数生成一个临时常量,再将临时值传入operator * ()成功调用,若是禁止了隐式类型转换,则这两句都无法通过编译。

  1. 当只有参数位于参数列内,这个参数才能支持隐式类型转换。也就是说this指针本身是不参与隐式类型转换的。只要我们让他成为非成员函数,没有this指针,每个参数都可以进行隐式类型转换了。

总结

  • 如果需要为某个函数的所有参数,包括被this指针所指向的隐含参数,进行类型转换,则需要把它实现成非成员函数。

条例25

考虑写出一个不抛异常的swap函数

  • stl中已经实现了swap函数,默认使用的是浅拷贝。(用三个对象互相复制实现)但其实对某些类型而言。这些复制是没有必要的。当使用pimpl手法时(以指针指向一个对象,内含真正数据),只需要交换指向资源的指针就可以了,但缺省的swap算法不知道这一点,将对象也复制了,极大的降低了效率。
  • 我们可以试着将stl容器内的swap针对当前类型进行特化。然后手动实现交换的操作。同时为了不破坏封装性。我们应该在当前类内提供交换的具体交换,同时在类外针对stl的swap特化时调用他。不仅没破坏封装并和stl的swap实现了一致性。
  • 但是当我们遇到交换对象是类型模板而非类型时这种做法无法解决问题。因为c++不允许偏特化函数模板。我们仍然在类内提供swap函数的具体实现,但这次我们在类外调用的时候不采取特化或重载标准库的stl的方式,而是用命名空间的方式将其封装起来。当你在使用的时候打开std和当前的命名空间,这样编译器会试着调用你自己实现的swap,若调用不了则调用stl的。
  • 如果stl的swap的效率可以接受则不需要额外操作,若缺省版本的效率低下,则可以通过提供public成员函数实现swap,并在命名空间内提供一个非成员函数并让他调用类内的成员函数。如果正在编写的是类而非模板类,应该试着特化std的swap。
  • 成员版的swap不应该抛出异常,为了帮助类实现强异常安全性

总结

  • 当stl的swap效率不高时,提供一个swap成员函数并保证其不抛出异常
  • 用类外成员函数调用类内成员的swap,若实现的是类,则特化标准库的swap
  • 在调用的时候针对swap使用using声明
  • 不能在stl内添加全新的东西
http://www.hkea.cn/news/896194/

相关文章:

  • 视频直播app开发网站南京最新消息今天
  • 溧阳手机网站哪里做万网域名注册官网查询
  • 网站维护收费推广产品吸引人的句子
  • 怎么用一个主机做多个网站许昌网络推广公司
  • 网站域名所有权郑州网站运营专业乐云seo
  • 桂园精品网站建设费用网站seo查询站长之家
  • 安卓手机怎么做网站站长工具seo综合查询广告
  • 余姚网站建设的公司手机百度账号申请注册
  • 预付网站制作费怎么做凭证如何自制网站
  • 定制网站多少钱北京seo网站管理
  • 南昌做网站公司哪家好如何建立独立网站
  • 成都解放号网站建设什么是百度竞价
  • 网站优化的基本思想与原则百度号码
  • 沧州网站建设制作设计优化深圳seo优化推广
  • 建立一个网站需要什么技术网上培训机构
  • 网站设计与管理论文百度账号注册平台
  • 网站空间商推荐seo是什么职位缩写
  • 怎么建设boss网站文件外链
  • 百度推广网站建设费百度搜索引擎的网址是多少
  • php 手机网站 上传图片定制网站建设
  • 关于网站建设的问题百度关键词分析
  • 登录官方网站装修公司网络推广方案
  • 设计网站官网入口网站搜索优化方法
  • 网站优化qq群山东做网站
  • wordpress icomoon太原seo快速排名
  • 中华建设杂志网站记者数据指数
  • 网站开发测试情况南召seo快速排名价格
  • 上海仓储公司小红书seo优化
  • 南京建设公司网站网络营销整合推广
  • wordpress更改语言沈阳seo优化