类分配器和解除分配器已弃用,因为使用它们,用户并不真正知道发生了什么,导致内存安全或泄漏问题.通常,D程序假定new X与垃圾收集器一起工作,并且分配器被更改,它可能不会导致混淆.
相反,如果你想改变分配,你应该提供一个工厂功能,所以很明显这是以不同的方式完成的.与私有构造函数一起,您可以强制使用自定义函数.
引用实现为指针.当您void foo(ref int b) { b = 10; }在D中写入时,就好像您void foo(int* b) { *b = 10; }在C中写入一样.指针是一个表示为数字的内存地址.它指向对象的位置,并允许通过它更改对象.复制指针和复制常规整数一样便宜,因此将它们传递给函数非常有效.