Oracle® Solaris Studio 12.4:C++ 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

4.3 用限制较少的虚函数覆盖

C++ 标准规定,覆盖虚拟函数在异常中允许的限制不得低于它覆盖的任何函数的限制。该虚函数可能与覆盖的任何函数具有相同或更多的限制。注意,不存在异常规范也允许任何异常。

例如,假定通过指向基类的指针调用函数。如果函数具有异常规范,则可以计算出没有其他正抛出的异常。如果覆盖函数具有限制较少的规范,则不可预料的异常可能会被抛出,这会导致意外的程序行为并且终止程序。

使用 -features=extensions 时,编译器允许覆盖异常规范限制较小的函数。