百科问答小站 logo
百科问答小站 font logo



为什么C++在构造函数和析构函数中不能抛出异常? 第1页

  

user avatar   haozhi-yang-41 网友的相关建议: 
      

我觉得最重要的是在逻辑上,当一个对象初始化到一半时,抛了异常的话,这个对象的状态应该如何定义?

不是全未初始化,也不是初始化完成。这种中间状态是要是扩散和暴露到外部代码中,会是很麻烦的。

如果说内部再维护一套更精细的状态指标,那完全不抛异常,用isReady之类的函数封装一下这个指标来指示这个对象的现状,也没什么麻烦。




  

相关话题

  为什么 C++ 的开源库看起来那么头大? 
  C 语言执行 a=a++; 后,a 的值应该加一还是不变? 
  字符串转化成整数,为啥我觉得我写的没有毛病呢? 
  在C++中,为什么部分程序员喜欢在循环中写‘++i’而不是‘i++’? 
  为什么读取连续内存没有比不连续的效率更高? 
  是不是后置类型语言的函数一定要加关键字,不加关键字编译器识别不出吗? 
  大公司为什么无法轻松使用更新的c++版本? 
  如何在 Linux 下利用 Vim 搭建 C/C++ 开发环境? 
  指针数组初始化为 nullptr 和直接使用 memcpy 有什么区别? 
  C++ 运动完上一个函数到下一个函数时,上一个函数里的变量值(结构体变量)为什么没保留住,变成零了? 

前一个讨论
我报了个钢琴班,8880元,上了两节课,要求退款合理吗?
下一个讨论
如何看待旧金山市议会宣布美国步枪协会为恐怖组织这一事件,它反映了美国政治的哪些问题?





© 2025-02-21 - tinynew.org. All Rights Reserved.
© 2025-02-21 - tinynew.org. 保留所有权利