c:std :: exception的what()方法中的奇怪语法
发布时间:2020-12-16 10:16:55 所属栏目:百科 来源:网络整理
导读:当我从std :: exception继承以定义我自己的异常类型时,我需要覆盖what()方法,该方法具有以下签名: virtual const char* what() const throw(); 这对我来说肯定很奇怪,就像签名中有两个方法名称一样.这是一些非常具体的语法,就像纯虚方法一样,例如: virtual
当我从std :: exception继承以定义我自己的异常类型时,我需要覆盖what()方法,该方法具有以下签名:
virtual const char* what() const throw(); 这对我来说肯定很奇怪,就像签名中有两个方法名称一样.这是一些非常具体的语法,就像纯虚方法一样,例如: virtual int method() const = 0; 或者这是一个功能,也可能以某种方式在另一个上下文中使用?如果是这样,它可以用于什么? 解决方法
它被称为异常规范. throw()不允许从此方法中抛出任何异常throw(int)只允许抛出int类型的异常.
异常规范将在C 0x中删除. This给出了很好的原因解释. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |