c++ - 立即返回新对象有什么区别?
问题描述
这两者有什么区别:
try
{
MyClass* tmp=new MyClass;
return tmp
}
catch (...)
{
cout << "Error";
}
和
try
{
return new MyClass;
}
catch (...)
{
cout << "Error";
}
我认为如果在第二个错误中发生错误,它将立即返回并且不会捕获错误,对吗?
解决方案
他们做同样的事情。
并且(很可能)会生成完全相同的代码。
如果您使用的是交互式调试器,第一个虽然很有帮助。新建完成后,更容易检查对象(通过单击tmp
(或在调试控制台中键入print tmp
))并查看是否已正确初始化。
不是你经常做的事情,但它会出现。
推荐阅读
- c# - 无法使用 Microsoft Graph SDK 上传文件
- javascript - Archiver.js 以某种方式复制了压缩过程
- huawei-mobile-services - 如何提供中国计算机软件著作权证书
- javascript - 角度构建中超出最大调用堆栈大小的错误
- bash - 哪个 bitbucket 服务器 api 适合将 pr 从 repo 复制到另一个 repo?
- android - Android 11 所有 pdf 文件访问失败
- php - 如何使用 php 从 json 打印特定值?
- github - 迁移完成后如何使用 GitHub 存储库验证 bitbucket 存储库
- python - 如何根据第一个值填充 nan?
- anylogic - 如何在anylogic中设置一个条件,只有在收到特定消息时才会返回true?