C 箴言:理解 new-handler的行为(2)

2008-02-23 05:05:50来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


  static class members(静态类成员)必须在 class 定义外被定义(除非他们是 const 而且是 integral),所以:

std::new_handler Widget::currentHandler = 0; // init to null in the class
// impl. file

  Widget 中的 set_new_handler 函数会保存传递给他的任何指针,而且会返回前次调用时被保存的任何指针,这也正是 set_new_handler 的标准版本所做的事情:

std::new_handler Widget::set_new_handler(std::new_handler p) throw()
{
 std::new_handler oldHandler = currentHandler;
 currentHandler = p;
 return oldHandler;
}


  最终,Widget 的 operator new 将做下面这些事情:



[1] [2] 下一页

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: 再谈C语言中数组和指针之间的互操作

下一篇: VC 实现应用程式对插件的支持