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

涪陵网站建设 优帮云做网站实际尺寸是多少

涪陵网站建设 优帮云,做网站实际尺寸是多少,网络销售代理加盟,wordpress主题改中文字体为异常安全而努力是值得的#xff01; 什么是异常安全#xff1f; 所谓的异常安全#xff0c;往往值得是函数接口的异常安全#xff0c;它要求函数满足两个条件#xff1a; 异常抛出时#xff1a; 1、不泄露任何资源 2、不允许数据被破坏 异常安…为异常安全而努力是值得的 什么是异常安全 所谓的异常安全往往值得是函数接口的异常安全它要求函数满足两个条件 异常抛出时 1、不泄露任何资源 2、不允许数据被破坏 异常安全分为哪些情况呢 答一共由三种情况。1、基本保证 2、强烈保证 3、nothrow保证 1、基本保证什么意思 异常被抛出所有数据仍然处于有效状态对象处于内部的前后一致。但现实状态无法预料 2、强烈保证什么意思 异常被抛出如果成功就是完全成功如果失败就回复到之前的状态 3、nothrow保证什么意思 保证绝不抛出任何异常总是能够成功。常作用域内置类型int、指针等 举例如下 有个class用来表示带背景图案的GUI菜单它希望用于多线程环境。 class Menu { public:void changeBackground(std::istream imSrc); //改变背景 private:Mutex mutex; //互斥锁Image* bgImage; //背景图片int imageChanges; //背景改变次数 }void Menu::changeBackground(std::istream imSrc) {lock(mutex);delete bgImage; // flag imageChanges;bgImage new Image(imSrc);unlock(mutex); }从异常安全性来看这个函数很糟糕一个条件都没有满足 (1)、假设 flag 处抛出异常则原本对象的数据被破坏(2)、因为抛出异常导致已经lock的互斥锁也没有释放永远处于加锁状态 那么如何解决(1)的问题? 通过RAII手法对资源进行封装的使用。 例如 void Menu::changeBackground(std::istream imSrc) {Lock m(mutex); //Lock包裹互斥锁delete bgImage; // flag imageChanges;bgImage new Image(imSrc); }如何解决(2)的问题? 合理并巧妙的安排代码语句的顺序。 class Menu { public:void changeBackground(std::istream imSrc); //改变背景 private:Mutex mutex; //互斥锁std::shared_ptrImage bgImage; //背景图片int imageChanges; //背景改变次数 }void Menu::changeBackground(std::istream imSrc) {Lock m(mutex); //Lock包裹互斥锁bgImage.reset(new Image(imSrc)); //这里如果new失败内部并不会改变原本的bgImage数据imageChanges; }上述几乎已经能够达到强烈保证的要求了但是唯独有一个点没有考虑到如果Image的构造函数抛出异常那么原本的istream的流数据状态已经发生改变所以上述只能算是基本承诺 那么有什么好的方法能够弥补这一缺陷呢 通过copy-and-swap技术 它的原理就是 1、为打算修改的对象做出一份副本 2、对副本做相应需要的修改 3、将副本和原本的对象进行swap置换 注 往往针对数据修改的swap需要数据本身在一个类中并且拥有这个类实例化的指针才行 举例 struct PMImpl {std::shared_ptrImage bgImage;int imageChanges; }class Menu { public:void changeBackground(std::istream imSrc); //改变背景 private:Mutex mutex; //互斥锁std::shared_ptrPMImpl pImpl; }void Menu::changeBackground(std::istream imSrc) {Lock m(mutex); //Lock包裹互斥锁std::shared_ptrPMImpl pNew(new PMImpl(*pImpl)); //1、拷贝副本pNew-bgImage.reset(new Image(imSrc)); //2、对副本修改pNew-imageChanges;using std::swap;swap(pNew,pImpl); //3、进行swap置换 }综上这样基本上就达成了我们的强烈保证的目的了 结尾 我是航行的小土豆喜欢我的程序猿朋友们欢迎点赞关注哦希望大家多多支持我哦有相关不懂问题可以留言一起探讨哦 如有引用或转载记得标注哦
http://www.hkea.cn/news/14371689/

相关文章:

  • 长春网页网站制作做导航网站赚钱
  • 汕头企业网站建设流程个人网站备案技巧
  • 公司展示类网站模板免费下载太原seo建站
  • 软件下载网站哪个好桂林公司注册
  • 企业网站翻译云服务器多网站解析
  • 一个公司做两个网站好创意设计大赛官网
  • thinkphp5做网站如何选择网站做站方向
  • 网站大图做多大尺寸科技股
  • 湖北省建设质量安全协会网站网站建设阿胶膏的作用
  • 有哪些做普洱茶网站的企业网站建设排名价格
  • 网站模板视频教程好资源源码网站
  • 使用nas建设网站简单的网站源码
  • 建设网站报告书品牌营销模式
  • 怎么做电子商务的网站工程资料外包公司
  • 做网站淘宝条形码jquery 网站缩放
  • 怎么做网站的地图页凡科做网站给后台的吗
  • 企业交易平台的网站制作多少钱wordpress百万数据
  • 一个返利网站建设流程wordpress文章分页标题
  • 卖汽车配件怎么做网站外国购物网站有哪些平台
  • 网站建设都是需要什么求个网站这么难吗2022年贴吧
  • 成品网站源码1688版本号中企动力 网站报价
  • 杭州商城网站制作wordpress如何压缩图片
  • 教育培训机构网站前端做网站要会什么
  • frp可以做网站吗河南微网站建设公司哪家好
  • 租号网站怎么做wordpress文字占满
  • 网站收录查询官方网站下载方法
  • 佛山网站建设哪里有网站开发众筹
  • 东莞哪些网络公司做网站比较好查企业企业网站有哪些
  • 营销型网站建站系统网站建设的公司推荐
  • 陕西省交通集团建设网站新闻宣传培训网站内容建设