1

引用 C++ Primer,第 4 版:

异常与 catch 异常说明符匹配的规则比用于将参数与参数类型匹配的规则限制得多。大多数转换都是不允许的,异常的类型和 catch 说明符必须完全匹配,只有几个可能的差异:

1.允许从非常量到常量的转换。也就是说,非常量对象的抛出可以匹配指定为获取 const 引用的 catch。

你能给我一个例子来解释第一个术语吗?非常感谢!

4

1 回答 1

4

这是一个例子

int main()
{
  try
  {
    int x = 1;
    throw x;
  }
  catch (const int& e)
  {
    cout << "caught " << e << '\n';
  }
}

你抛出一个非常量int,但你用const int&.

于 2012-08-03T07:04:50.180 回答