1. 什么是智能指针?
答案:
智能指针是C++中的一个类模板,用于管理动态分配的内存。它自动进行内存分配和释放,帮助避免内存泄漏和野指针的问题。
2. 在C++中,有哪些常用的智能指针?
答案:
C++提供了三种常用的智能指针:`std::shared_ptr`、`std::unique_ptr`和`std::weak_ptr`。
3. `std::shared_ptr`和`std::unique_ptr`之间有什么区别?
答案:
- `std::shared_ptr`允许多个指针共享同一块内存,会对引用计数进行跟踪,当所有指针都不再引用该内存时才会释放。
- `std::unique_ptr`拥有独占权,只能有一个指针指向该内存,当指针超出作用域或被重置时,会自动释放内存。
4. `std::weak_ptr`和`std::shared_ptr`之间有什么区别?
答案:
- `std::shared_ptr`通过引用计数跟踪共享的内存,而`std::weak_ptr`不增加引用计数,只是提供了对&#