我们终于老的,可以谈谈未来。 ——《如丧》
今天看代码的时候,看到一个不认识的东西,make_shared()
,去查了查发现是智能指针相关的东西,正好记录下来。
考虑对象的生命周期的事情,全局对象在程序启动时被分配,在程序结束时销毁。对于局部自动对象,进入其所在的程序块时被创建,离开块时被销毁。局部static
对象在第一次使用前分配,程序结束时被销毁。
而在这种约定俗成的生命周期之外,也可以显式地被创建和释放。这就是动态内存。而为了更安全地使用动态对象,标准库定义了两个智能指针类型来管理动态分配的对象。动态内存的管理通过new
, delete
这两个运算符来完成。
由于此处极易出错,新标准提供了shared_ptr
和unique_ptr
,前者允许多个指针指向同一对象;后者则“独占”其所指向的对象。
make_shared()
提供了一种安全地分配和使用动态内存的手段。该函数在动态内存中分配一个对象并初始化它,返回指向此对象的shared_ptr
。
以上内容基本来自神书《C++ Primer》
over~
网友评论