Rust如何执行/实施RAII [关闭]

问题描述 投票:0回答:1

我正在研究一种(可能)严肃的编程语言,并希望学习如何实现内存管理。我希望这种语言强制执行RAII,类似于Rust,但是,与Rust不同,这种语言是面向对象的,我希望我能实现管理自己内存的对象(比如Rust中的Boxes)。任何人都可以详细了解Rust如何处理对堆内存的引用?

rust heap-memory raii
1个回答
0
投票

我认为实现类最明显的方法是:

  • 您的类变量实现为指针,如C#和Java。
  • 对象的单个所有者和所有类变量都具有移动语义以强制执行此操作,就像在Rust中一样。
  • 内存是一种需要清理的资源,因此所有类变量在调用referent对象的析构函数(如果有的话)之后,也会调用内存分配器的释放例程,就像在C ++中一样。
  • 您在类型系统中引入生命周期,以确保借用/借用对象不允许任何非拥有引用超过它,就像在Rust中一样。
© www.soinside.com 2019 - 2024. All rights reserved.