按值输出并在c ++中通过引用捕获

时间:2013-12-09 07:03:55

标签: c++ reference

我希望有人向我解释这个术语以及如何“按价值投掷并吸引我的参考”。有人对我说,我还是一个新的程序员,我似乎还不明白。

2 个答案:

答案 0 :(得分:3)

“按值抛出”意味着不抛出(原始)指针。

当抛出一个指针时,很有可能是双delete(UB)或没有delete(泄漏内存),因为处理程序如何知道它是否应该{{1不是吗?

“通过引用捕获”意味着通过引用捕获,优选引用delete。 这样就可以避免切片异常对象。例如,处理程序可以简单地使用const来确定dynamic_cast是否真的是std::exception

答案 1 :(得分:2)

通过引用很好地抓住了

...}catch(myException &me){ }

因此,当您说catch(myException me)时,它会创建一个新对象,但如果是引用则不会。
另外,作为catch块中的引用的异常意味着在访问对象以处理异常时可能存在多态行为。

如果异常是派生类型,这非常有用。 Click Me For More Info