1. 基本用法 #include <memory> #include <iostream> void example() { // 创建一个 unique_ptr 管理动态分配的 int 对象 std::unique_ptr<int> ptr(new int(10)); // 使用智能指针 std::cout << *ptr << std::endl; // 输出: 10 // 不需要手动释放内存,ptr 超出作用域时自动释放 } 2. ...
我们先看看std::unique_ptr的基本用法: #include <iostream>#include <memory> // 包含智能指针头文件 class MyClass {public: MyClass%28%29 { std::cout << "MyClass 构造函数" << std::endl; } ~MyClass%28%29 { std::cout << "MyClass 析构函数" << std::endl; } void sayHello%28%29 ...
lock():尝试获取一个指向对象的shared_ptr,如果对象仍然有效,则返回非空shared_ptr,否则返回空shared_ptr。 基本用法 //1 创建 int main() { // 创建一个 shared_ptr 并指向新建的 MyClass 对象 std::shared_ptr<MyClass> ptr1 = std::make_shared<MyClass>(42); // 访问对象的方法 std::cout << ...
std::unique_ptr是一种独占的语义,即只允许一个智能指针引用裸指针,这区别于std::shared_ptr允许多个shared_ptr引用同一个裸指针,它没有引用计数,它的性能比shared_ptr会高一点。 在用法上std::unique_ptr和std::shared_ptr是类似的,主要的不同是std::unique_ptr之间的赋值需要通过std::move实现。 在code2 ...
std::unique_ptr用法 copy from : https://blog.csdn.net/piaopiaopiaopiaopiao/article/details/87912137#include <iostream> #include <memory> struct Task { int mId; Task(int id) : mId(id) { std::cout << "Task::Constructor" << std::endl; ...
std::unique_ptr的常见用法是作为继承层次结构中对象的工厂函数返回类型。假设有一个投资类型(的继承结构,使用基类Investment。 class Investment{ … }; class Stock:public Investment { … }; class Bond:public Investment { … }; 1. 2. 3. class RealEstate:public Investment { … };使用std::unique_...
std::unique_ptr的一个常见用法是在对象继承谱系中作为工厂函数的返回型别。这种继承谱系的工厂函数通常会在堆上分配一个对象并且返回一个指涉到它的指针,并当不在需要该对象时,由调用者负责删除之。 三、示例(以下代码需要c++14支持) #ifndefUNIQUEPTRDEMO_H#defineUNIQUEPTRDEMO_H#include<iostream>#include<memo...
以下是一个展示 std::unique_ptr 基本用法的示例代码: cpp #include <iostream> #include <memory> int main() { // 使用 std::make_unique 创建 std::unique_ptr std::unique_ptr<int> ptr1 = std::make_unique<int>(10); std::cout << "Value: " <...
std::unique_ptr最常见的一个用法是作为工厂函数的返回类型,这个工厂函数用来生产一个继承结构的类的对象。假设我们有这样一个基类Investement,然后有一些列关于投资的继承类型(例如,股票,物业等等),实现伪代码如下, classInvestment{...};classStock:publicInvestment{...};classBond:publicInvectment{...};classRe...
简介:【C++ 包装器类 智能指针】完全教程:std::unique_ptr、std::shared_ptr、std::weak_ptr的用法解析与优化 — 初学者至进阶指南 1. 智能指针简介 1.1 C++智能指针的概念 C++智能指针(SmartPointers)是一种能够实现自动化内存管理的对象。智能指针在析构时会自动释放它所拥有的内存,从而消除了程序员手动管理内...