c++中的垃圾收集器

Garbage Collector in c++

本文关键字:收集器 c++      更新时间:2023-10-16

我有一个项目,必须用c++实现垃圾收集器。现在我必须交付类图,但我不知道如何做到这一点。

有人能解释一下垃圾收集器是干什么的吗?谷歌没帮我!!我发现了很多有很多类和变量的东西。

我们考虑一种简单的语言,其中只有两个预定义的类,Int和Real(如Java),分配在4或8个字节上。

  • 我有像int a、real b 这样的声明

  • 分配语句(x=y)

  • 退货对账单(退货x)

当声明一个对象时,内存是从对应于适当大小和空闲地址的动态分配的内存区域中分配的,对象的参考计数器初始化为1

-每次赋值,递增引用计数对象。传递值时也会发生同样的情况​​以功能形式存在,以及返回的说明

-每次函数体在有对象声明的地方结束时,它都会递减引用计数器

-当对象的引用计数达到0时,它会释放内存

我应该实现多少个类?只有2个预定义类。。。每个类都必须有一个变量"counter",或者有一个第三类拥有计数器?

垃圾收集器是一种定期服务,当分配的内存不再使用时,它会自动解除分配。

注意,它不处理堆栈上分配的变量,如

int a;
char b;

但是具有在堆中分配的变量(即使用new语句分配的变量)。

在实践中,当您有一个垃圾收集器时,您不再需要显式地delete分配变量,因为垃圾收集器将为您执行此操作。