我无法理解,以下代码是对的,
class cls
{
//just to create obj
};
int main(int argc, char* argv[])
{
try
{
throw cls();//throwing obj as ref
}
catch(cls &ref)
{
}
return 0;
}
我正在抛出cls对象作为参考,它会不会因为它来自{}范围而死掉?
因为catch块无法访问try的变量.
最佳答案 抛出异常时,实际上会生成异常对象的副本.它是catch块接收的副本,因此它不会超出范围,即使原始对象是.