84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
开启了ARC的objective-C++代码中C++对象是否需要手动释放?
学习是最好的投资!
需要。ARC 只是一个编译器技术,通过扫描代码来自动插入 retain/release,C++ 代码并不在编译器识别的范围内,生命周期只有自己管理。
另外,ARC 这种技术是因为 Obj-C 语言自身无法实现自动引用计数才不得已而为之的“落后”技术,C++ 的话直接使用 shared_ptr/unique_ptr/weak_ptr 这些标准库提供的智能指针类就能够写出跟 ARC 一样干净的代码。某种意义上来说,用了智能指针,C++ 的对象就不需要手动释放了。
需要。ARC 只是一个编译器技术,通过扫描代码来自动插入 retain/release,C++ 代码并不在编译器识别的范围内,生命周期只有自己管理。
另外,ARC 这种技术是因为 Obj-C 语言自身无法实现自动引用计数才不得已而为之的“落后”技术,C++ 的话直接使用 shared_ptr/unique_ptr/weak_ptr 这些标准库提供的智能指针类就能够写出跟 ARC 一样干净的代码。某种意义上来说,用了智能指针,C++ 的对象就不需要手动释放了。