滑雪路线

Route

联系华体会

Contact huatihui

手机:@HASHKFK
电话:@HASHKFK
QQ:@HASHKFK
邮箱:@HASHKFK
地址:华体会- 华体会体育- 华体会体育官网
滑雪常识

>>你的位置: 首页 > 滑雪常识

C语言常见华体会- 华体会体育官方网站- 体育APP下载问题

2025-06-05 20:48:37

  华体会电竞,华体会电子,华体会体育官网,华体会靠谱吗,华体会APP,华体会官方网站,华体会网址,华体会官方平台,华体会app下载,华体会体育靠谱吗,华体会2025最新,华体会世界杯,华体会欧洲杯

C语言常见华体会- 华体会体育官方网站- 华体会体育APP下载问题

  当然有。第一个块中重新抛出的是当前异常(current exception),无论它是什么类型。特别是如果这个异常开始就是做为SpecialWidget类型抛出的,那么第一个块中传递出去的还是SpecialWidget异常,即使w的静态类型(static type)是Widget。这是因为重新抛出异常时没有进行拷贝操作。第二个catch块重新抛出的是新异常,类型总是Widget,因为w的静态类型(static type)是Widget。一般来说,你应该用throw来重新抛出当前的异常,因为这样不会改变被传递出去的异常类型,而且更有效率,因为不用生成一个新拷贝。(顺便说一句,异常生成的拷贝是一个临时对象。正如条款19解释的,临时对象能让编译器优化它的生存期(optimize it out of existence),不过我想你的编译器很难这么做,因为程序中很少发生异常,所以编译器厂商不会在这方面花大量的精力。)

  当传递localWidget到函数operator里,不用进行拷贝操作,而是把operator内的引用类型变量w指向localWidget,任何对w的操作实际上都施加到localWidget上。这与抛出localWidget异常有很大不同。不论通过传值捕获异常还是通过引用捕获(不能通过指针捕获这个异常,因为类型不匹配)都将进行lcalWidget的拷贝操作,也就说传递到catch子句中的是localWidget的拷贝。必须这么做,因为当localWidget离开了生存空间后,其析构函数将被调用。如果把localWidget本身(而不是它的拷贝)传递给catch子句,这个子句接收到的只是一个被析构了的Widget,一个Widget的“尸体”。这是无法使用的。因此C规范要求被做为异常抛出的对象必须被复制。

【返回列表】

搜索您想要找的内容!

首页 | 关于华体会 | 华体会新闻 | 滑雪门票 | 滑雪常识 | 人才招聘 | 在线留言 | 联系华体会 | 滑雪路线 | 精彩图片 |

地址:华体会- 华体会体育- 华体会体育官网 电话:@HASHKFK 手机:@HASHKFK

Copyright © 2012-2024 华体会体育户外滑雪培训设备有限公司 版权所有 非商用版本 ICP备案编号: