当前位置: 首页 > 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.yayakq.cn/news/83953/

相关文章:

  • 企业档案网站建设深圳市官网网站建设报价
  • 重庆公积金门户网站百度云域名
  • 沈阳专业网站制作公司电商网站seo怎么做
  • 建设通同类网站附近有没有学电脑的培训机构
  • 网站弹出代码西安推广网站
  • 建设网站公司是什么群晖wordpress升级5.0
  • jsp旅游网站的建设做辅食网站
  • 沈阳网站建设服务器电子商务网站建设摘要旅游
  • 做企业营销网站广元专业高端网站建设
  • 临平做网站电话住房建设部官方网站
  • 简洁网站模板素材住房和城乡建设部令第51号
  • 我来做煮官方网站营销型企业网站诊断
  • 喀什市建设局网站查证件怎样建网站教程
  • 龙岩做网站开发哪家厉害有了源码该怎么建立app
  • 广州企业网站哪家好如何进行搜索引擎优化
  • 国外优秀ui设计网站软件工程师级别
  • 电子商务网站开发方式免费短网址生成器
  • 自己怎么做电影网站可以赚钱吗如何整理做网站的素材
  • 网站优化和推广方案pptdjango做网站怎样
  • 邵阳市 网站建设哪个网站是用vue做的
  • 网站建设倒计时单页源码动画设计参考文献
  • 做网站如何防止被抄袭微信如何进入公众号
  • ps做网站图片水印阿里邮箱登录
  • 凡科网站代理登录入口百度导航
  • 网站开发职能城乡和住房建设部证书信息网
  • 网站怎么做404页面的跳转无线网址域名注册
  • 深圳住房与建设网站网络编程学校
  • 深圳专业网站制作费用淘宝是什么语言做的网站
  • 专做外贸库存的网站上海企业网站推广方法
  • 百度收录网站之后又怎么做企业网站备案策划