2015-04-04 38 views
2

在C++中,存在使用预分配内存创建对象的inplace-new运算符。德尔福有没有相同的选项?在预分配的内存上使用Delphi对象构造函数

+0

一些类似或可能重复的东西[有没有用于Delphi的通用“对象池”实现?](http://stackoverflow.com/q/16404051/576719)和[用微型对象池提升工作类]( http://www.delphitools.info/2013/09/26/boosting-work-classes-with-a-mini-object-pool/)。 – 2015-04-04 20:02:17

回答

2

没有直接的等价物(我知道),但是通过覆盖自定义类中的NewInstance类函数并提供一个类似的效果(通过控制对象类型的内存分配方式和位置)实现,它为自定义堆池中的新实例提供空间。

+0

好吧,这个想法是一种灵活的方式来创建已由外部分配器(可以调用回调函数销毁)分配的内存上的任何类。 NewInstace覆盖不能提供这个。但如果没有其他机会,我会尝试。 – cytrinox 2015-04-04 16:48:14

+0

NewInstance可以做到这一点,但它需要一个相当混乱的方式来获得预分配内存的地址NewInstance。 – 2015-04-05 07:40:26