C++ c++;,智能指针和垃圾收集
在c++11中,我们有C++ c++;,智能指针和垃圾收集,c++,garbage-collection,C++,Garbage Collection,在c++11中,我们有shared_ptr,当我们将它与new一起使用时,我们以后不必显式调用delete。这部分工作由shared\ptr负责 这样说,为什么PPL一直说C++中没有垃圾回收器? 这里少了什么 我可以使用/认为代码> SydRypPTR>代码>作为垃圾回收器C++(?)/p>< p>在垃圾回收的语言中,比如java和c*,你不能避免。所有对象都会自动进行垃圾收集 C++允许你在自己之后自动清理,但是你必须选择使用它。SydLypTR是一个类类型,当SyrdYpPTR实例被破坏
shared_ptr
,当我们将它与new
一起使用时,我们以后不必显式调用delete
。这部分工作由shared\ptr
负责
这样说,为什么PPL一直说C++中没有垃圾回收器? 这里少了什么
<>我可以使用/认为代码> SydRypPTR>代码>作为垃圾回收器C++(?)/p>< p>在垃圾回收的语言中,比如java和c*,你不能避免。所有对象都会自动进行垃圾收集
C++允许你在自己之后自动清理,但是你必须选择使用它。
SydLypTR是一个类类型,当SyrdYpPTR实例被破坏时,SyrdypTR的析构函数将释放内存,这不是GC。< /P>后续:我可以使用/SyrdypTR作为C++中的垃圾收集器吗?垃圾收集是一个独立的进程,它定期清理未引用的内存。智能指针只是当它们被破坏时自动清理相关内存的对象。智能指针基本上不会产生运行时成本,而GC可能会产生相当大的运行时成本。@Resident饼干引用计数器智能指针确实会产生运行时成本。引用计数不是免费的。更准确地说,当
shared_ptr
的实例被销毁时,其析构函数将减少指向对象的引用计数。如果ref计数变为零,它将销毁对象。@Fredrarson,是的,你是对的!谢谢