多语言展示
当前在线:103今日阅读:91今日分享:37

怎样使用定位new

所谓定位 new,就是预先分配一块内存,再将 new 出来的对象放入此内存块中的方法。通俗点说,就是在指定内存块中产生新对象。下面,就来向大家介绍定位 new 的使用方法。
工具/原料

编译器

一、准备工作
1

要使用定位 new,必须包含头文件 。不过,现在通常我们不必特意去包含它,因为头文件中已经包括了,我们只需要包含即可。

2

在这里,为了更加有效地说明定位 new 的使用方法,我们再定义两个自定义类:MyInt 和 MyChar。

二、使用方法
1

下面,我们通过分析一个具体的示例,来一步一步地教大家怎样使用定位new。首先,分配供定位 new 使用的内存块。

2

在分配的内存块中调用定位 new,构造两个 MyInt 对象,并为它们的数据成员赋值。在这儿请注意,之前我们分配的是 8 字节的内存,而我们的一个 MyInt 对象只需要 4 个字节,故可以构造两个。对象构造以后,我们便可以使用创建的对象。在这里,我们输出第一个对象的数据成员值。

3

当对象使用完不再需要时,我们必须调用它的析构函数来销毁它。

4

对象销毁以后,我们接下来可以继续使用分配的内存块再次构造其他类型的对象。比如说,我们再在 buffer 中构造数个 MyChar 对象,并给它们的数据成员赋值。对象构造完成后,我们输出第 4 个对象的数据成员值。

5

然后,我们再次销毁这些对象。

6

现在,我们的工作已经完成,不再需要之前分配的内存块,因此可将它释放掉。

7

下面是上述代码的运行截图。

注意事项

在对时间要求非常苛刻、需要进行大量分配-释放、分配-释放内存的程序中,由于使用定位new可省去不少内存分配回收的开销,故常常可以显著减少CPU占用,并且大大提高程序运行速度。

推荐信息