c/c++笔记--4

1、与函数的参数传递不同,c++特别声明,不论被捕捉的exception是以by value或者by reference方式传递,一个对象被抛出作为exception时,总是会发生复制,而且复制动作是以对象的静态类型为本。

2、catch(Widget &w)

  {

    ...

    throw;

  }

  catch(Widget &w)

  {

    ...

    throw w;

  }

的区别:前者重新抛出当前exception(动态类型),而且比较有效率,后者抛出当前exception的副本(静态类型)。

原文地址:https://www.cnblogs.com/Jace-Lee/p/5782695.html