究竟什么引用c ++中的计数意味着什么?

Nar*_*uto 9 c++ constructor copy-constructor

参考计数究竟是什么?特别是,C++的用途是什么?如果我们不处理它们会遇到什么问题?所有语言都需要引用计数吗?

Alo*_*ave 7

参考计数究竟是什么?特别是,C++的用途是什么?

简单来说,引用计数意味着计算对象的引用.

通常,C++采用RAII技术.其中,管理类型对象的释放的能力被绑定在类型对象本身内.这意味着用户不必显式管理对象的生命周期及其释放,执行此管理的功能是在对象本身中构建的.

此功能意味着对象应该存在并保持有效,直到有引用该对象的利益相关者,这通过引用计数来实现.每次共享(复制)对象时,引用计数(通常是类类型中的成员)都会递增,每次调用析构函数时,计数都会递减,当计数达到0时,任何人都不会引用该对象.标志着它的寿命结束,因此它被破坏了.

如果我们不处理它们会遇到什么问题?

这意味着不再有RAII,而且无休止且常常是错误的手动资源管理.
简而言之,编程噩梦.

所有语言都需要引用计数吗?

语言不需要引用计数,但是使用该技术可以非常容易地使用该语言的用户,因此大多数语言都倾向于使用它来为用户提供这些优势.


Ind*_*mer 0

引用计数垃圾收集是一种强大的内存管理技术,有助于防止对象被意外删除或多次删除。该技术不仅限于 C++ 代码,而且尽管其名称如此,但与 C++ 引用变量的概念无关。相反,该术语意味着我们维护对某个对象的所有“拥有引用”的计数,并在该计数变为零时删除该对象。