更新时间:2023-11-11 12:18:46
推荐的方式是按值抛出,按引用捕获.
您的示例代码抛出一个指针,这是一个坏主意,因为您必须在捕获站点管理内存.
Your example code throws a pointer, which is a bad idea since you would have to manage memory at the catch site.
如果你真的觉得你应该抛出一个指针,使用智能指针,比如 shared_ptr
.
If you really feel you should throw a pointer, use a smart pointer such as shared_ptr
.
无论如何,Herb Sutter 和 Alexei Alexandrescu 在我转述的他们的 C++ 编码标准一书中很好地解释了这一点.
请参阅 C++ 编码标准:按值抛出,按引用捕获.