c/c++笔记--4

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

2、catch(Widget &w)

  {

    ...

    throw;

  }

  catch(Widget &w)

  {

    ...

    throw w;

  }

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

 

posted @ 2016-09-02 18:00  凯撒大猩猩  阅读(157)  评论(0编辑  收藏  举报