![]() |
1
21
当你扔一个物体时,你实际上是扔一个物体的副本,而不是原件。想想看-原始对象在堆栈上,但堆栈正在被解绕和失效。 我相信这是标准的一部分,但我没有可供参考的副本。
在catch块中引发的异常类型是catch的基类型,而不是所引发对象的类型。解决这个问题的方法是
|
![]() |
2
10
A quick google
建议是的,您要抛出的复制构造函数是必需的,并且必须是公共的。(这很有意义,因为您正在初始化
不管怎样,只要用
|
![]() |
3
7
对。
引发的异常
静止的
类型
在这种情况下,你可以
得到
如果你对其他情况下的多态性抛出感兴趣,请参考 always so useful C++ FAQ Lite . |
![]() |
4
1
C++永远不会让我吃惊。如果这是对行为的赌注,我会损失很多钱的!
异常对象首先被复制到临时对象,您应该使用
我认为这产生了一个非常有用的编码标准规则:
或
这两种方法都达到了当您试图“抛出e”时编译器会发出警告的目标,因为在第一种情况下,您不能创建抽象类的实例,而在第二种情况下,您不能调用复制构造函数。 |
![]() |
Konvt · 标准库中异常构造函数参数类型问题 6 月前 |
![]() |
EarthTurtle · 调整泛型抛出迭代器的异常类型 12 月前 |
![]() |
ê¹ë¯¼ì¬ · 在六边形的建筑中,例外情况应该扔到哪里? 1 年前 |
|
tariqalr · 带有try-catch块的无限循环的编译和返回值 1 年前 |
![]() |
CheezGuy · Python尝试/不停止错误除外 1 年前 |