1. 什么是智能指针?
答案:
智能指针是C++中的一种包装类,用于管理动态分配的内存资源,自动进行内存的释放,避免内存泄漏。
2. 为什么需要使用智能指针?
答案:
使用智能指针可以避免手动管理内存,减少内存泄漏和悬空指针的风险,提高代码的可靠性和安全性。
3. 智能指针与原始指针相比有什么优势?
答案:
智能指针相比原始指针具有自动内存管理、避免内存泄漏、避免悬空指针、代码可读性更高等优势。
4. C++标准库提供了哪些智能指针?
答案:
C++标准库提供了std::unique_ptr、std::shared_ptr和std::weak_ptr三种智能指针。
5. std::unique_ptr和std::shared_ptr之间的区别是什么?
答案:
std::unique_ptr是独占所有权的智能指针,只能有一个指针拥有资源;std::shared_ptr可以共享所有权,可以有多个指针拥有资源。
6. std::shared_ptr如何实现资源的引用计数?
答案:
std::shared_ptr通过维护一个引用计数来实现资源的引用计数,每个拥有资源的std::shared_ptr都会增加引用计数,当引用计数为0时释放资源。
7. std::weak_ptr的作用是什么?
答案:
std::weak_ptr用于解决std::shared_ptr的循环引用问题,它可以观测和访问由std::shared_ptr管理的资源,但不会增加引用计