![]() |
1
21
当你扔一个物体时,你实际上是扔一个物体的副本,而不是原件。想想看-原始对象在堆栈上,但堆栈正在被解绕和失效。 我相信这是标准的一部分,但我没有可供参考的副本。
在catch块中引发的异常类型是catch的基类型,而不是所引发对象的类型。解决这个问题的方法是
|
![]() |
2
10
A quick google
建议是的,您要抛出的复制构造函数是必需的,并且必须是公共的。(这很有意义,因为您正在初始化
不管怎样,只要用
|
![]() |
3
7
对。
引发的异常
静止的
类型
在这种情况下,你可以
得到
如果你对其他情况下的多态性抛出感兴趣,请参考 always so useful C++ FAQ Lite . |
![]() |
4
1
C++永远不会让我吃惊。如果这是对行为的赌注,我会损失很多钱的!
异常对象首先被复制到临时对象,您应该使用
我认为这产生了一个非常有用的编码标准规则:
或
这两种方法都达到了当您试图“抛出e”时编译器会发出警告的目标,因为在第一种情况下,您不能创建抽象类的实例,而在第二种情况下,您不能调用复制构造函数。 |
|
lfox · 如果列中不存在某个值,则停止代码执行 2 年前 |
![]() |
zaen · 将值传递到异常字符串消息中 2 年前 |
![]() |
Zephyr · 如何在双ListView选择系统上实现过滤器? 6 年前 |
![]() |
Aave · 错误数组长度的特定异常 6 年前 |