海康C++开发面试题及参考答案
智能指针有哪几种?请分别介绍。
在 C++ 中,智能指针是一种用于管理动态分配内存的对象,它可以自动释放所指向的对象,避免内存泄漏。主要有以下几种智能指针:
std::unique_ptr
:
- 独占所有权:
std::unique_ptr
对其所指向的对象拥有独占的所有权,这意味着同一时间内,只能有一个std::unique_ptr
拥有该对象。当std::unique_ptr
被销毁时,它所指向的对象也会被自动删除。例如:
#include <memory>
class MyClass {
public:
MyClass() { std::cout << "MyClass constructed" << std::endl; }
~MyClass() { std::cout << "MyClass destructed" << std::endl; }
};
int main() {
std::unique_ptr<MyClass> ptr = std::make_unique<MyClass>();