如何将对象作为C中的引用抛出?

我无法理解,以下代码是对的,

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块接收的副本,因此它不会超出范围,即使原始对象是.

点赞