正在阅读:高质量C++编程点滴(二)高质量C++编程点滴(二)

2004-07-05 09:55 出处:CSDN 作者:fireseed 责任编辑:linjixiong


       CalcData( p );

       delete p;

}

  合理:


char Buf[sizeof(DATA)];

void foo( void )

{

       Data *p = new(Buf) Data;

       CalcData( p );

}

  解析:

  new(buf) type;是定位的new语法,它不会真正的分配内存,而是简单的在指定的已分配的内存起点上划分出一段与类型大小匹配的空间,并直接在这段内存上对该类型进行构造对象,并返回对象的指针。由于它没有真正的分配内存空间,因此它的效率是非常高的,在类似于上述例程中,频繁申请和释放一个大对象的操作,定位的new可以带来很大的效率提升。


察看评论详细内容 我要发表评论
作者笔名 简短内容 发表时间
:
键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品