D弃用了类分配器

dev*_*223 1 d

为什么D2中的类分配器和解除分配器已弃用?

而另一个小问题,如何在D中实现引用?

我在哪里看过关键字ref,但我不知道,参考是如何实现的.

有D像全局句柄表一样思考而引用只是索引吗?

Ada*_*ppe 7

类分配器和解除分配器已弃用,因为使用它们,用户并不真正知道发生了什么,导致内存安全或泄漏问题.通常,D程序假定new X与垃圾收集器一起工作,并且分配器被更改,它可能不会导致混淆.

相反,如果你想改变分配,你应该提供一个工厂功能,所以很明显这是以不同的方式完成的.与私有构造函数一起,您可以强制使用自定义函数.

引用实现为指针.当您void foo(ref int b) { b = 10; }在D中写入时,就好像您void foo(int* b) { *b = 10; }在C中写入一样.指针是一个表示为数字的内存地址.它指向对象的位置,并允许通过它更改对象.复制指针和复制常规整数一样便宜,因此将它们传递给函数非常有效.