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



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

  

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

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

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

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




  

相关话题

  如果加班是自愿的,你们会为了钱加班吗? 
  C++中如何将string类型转换为int类型? 
  如何理解《Effective C++》第31条将文件间的编译依赖关系降低的方法? 
  C++的CRTP所带来的静态多态功能具体有什么用? 
  你遇到过哪些高质量的 C++ 面试? 
  golang 为什么没有三元运算符? 
  C++整型有__int8、__int16、__int32等等,为什么还要short、int、long? 
  现在快2022年了,c++为什么还要实现(.cpp)和声明(.h)分开? 
  在c++代码中使用const关键字是不是自找麻烦? 
  C语言中指针与数组都可以用a[3]表示,那它们是不是相同? 

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





© 2025-03-28 - tinynew.org. All Rights Reserved.
© 2025-03-28 - tinynew.org. 保留所有权利