当前位置: 首页 > news >正文

网站建设合同严瑾做旅游攻略去什么网站

网站建设合同严瑾,做旅游攻略去什么网站,网站开发工程师年度总结,可不可以自己做网站智能指针⽤于管理动态内存的对象,其主要⽬的是在避免内存泄漏和多次释放资源。 1. std::unique_ptr 独占智能指针 std::unique_ptr 是一种独立智能指针,独占内存资源,不能被其他独立智能指针共享,拥有自动释放内存的功能。 std::u…
智能指针⽤于管理动态内存的对象,其主要⽬的是在避免内存泄漏和多次释放资源。

1. std::unique_ptr 独占智能指针

std::unique_ptr 是一种独立智能指针,独占内存资源,不能被其他独立智能指针共享,拥有自动释放内存的功能。

std::unique_ptr 拥有对某个对象的控制权。当 std::unique_ptr 被销毁时,它所管理的对象也会被自动销毁,从而有效防止内存泄漏。

#include <iostream>
#include <memory>class MyClass {
public:MyClass() { std::cout << "MyClass constructed\n"; }~MyClass() { std::cout << "MyClass destructed\n"; }void doSomething() { std::cout << "Doing something\n"; }
};int main() {// 创建 std::unique_ptrstd::unique_ptr<MyClass> ptr1 = std::make_unique<MyClass>();// 使用 -> 访问成员ptr1->doSomething();// 无法复制 std::unique_ptr// std::unique_ptr<MyClass> ptr2 = ptr1; // 编译错误// 可以移动 std::unique_ptrstd::unique_ptr<MyClass> ptr2 = std::move(ptr1);// ptr1 现在为空if (ptr1 == nullptr) {std::cout << "ptr1 is null\n";}// ptr2 现在拥有对象ptr2->doSomething();// 离开作用域时,ptr2 自动删除对象
}

2.std::shared_ptr (共享智能指针)

shared_ptr 旨在管理动态分配对象的生命周期,支持多个指针共享同一对象的所有权。它通过引用计数机制来追踪有多少个 std::shared_ptr 实例指向同一个对象,当引用计数降为零时,自动释放所管理的对象,从而有效防止内存泄漏。

主要特性:

  • 共享所有权: 多个 std::shared_ptr 实例可以指向同一个对象,共享对该对象的所有权。每次拷贝或赋值都会增加引用计数,每次析构都会减少引用计数。当引用计数为零时,自动删除所指向的对象。

  • 线程安全: std::shared_ptr 的引用计数是线程安全的,可以在多个线程中安全地拷贝和销毁。但需要注意,对同一对象的操作仍需使用适当的同步机制。

  • 内存管理: std::shared_ptr 内部维护一个控制块,包含引用计数和删除器等信息。使用 std::make_shared 创建 std::shared_ptr 时,会同时分配对象和控制块的内存,避免了多次内存分配,提高了性能。

#include <iostream>
#include <memory>class MyClass {
public:MyClass() { std::cout << "MyClass constructed\n"; }~MyClass() { std::cout << "MyClass destructed\n"; }void doSomething() { std::cout << "Doing something\n"; }
};int main() {// 使用 std::make_shared 创建 std::shared_ptrauto ptr1 = std::make_shared<MyClass>();// 使用 -> 访问成员ptr1->doSomething();// 拷贝构造,引用计数增加auto ptr2 = ptr1;std::cout << "Reference count: " << ptr1.use_count() << "\n"; // 输出 2// 赋值构造,引用计数增加auto ptr3 = ptr2;std::cout << "Reference count: " << ptr1.use_count() << "\n"; // 输出 3// 离开作用域时,ptr1、ptr2 和 ptr3 会被销毁,引用计数减少// 当引用计数为 0 时,自动释放 MyClass 对象
}

http://www.dtcms.com/a/401567.html

相关文章:

  • 网站动态好还是静态好中国发达国家还有多远
  • 织梦网站导航固定网页设计基础教程视频教程
  • 福建省建设质量安全协会网站竞赛作品发表网站怎么做
  • 住房城乡建设部执业资格注册中心网站北京优化网站公司
  • 温州专业微网站制作网络公司广告设计属于什么学类
  • 做360全景的网站怎么做婚庆网站平台
  • 深圳市招聘信息网站网页框架与布局
  • 魏县网站建设亚马逊aws永久免费服务
  • 高端个人网站上海网站建设网络推广
  • 自己做的网站如何引流网站建设凡客
  • 百度的企业网站答辩ppt模板
  • 不会编程做网站wordpress 轻量级
  • 西安信息网站建设重庆市建设造价信息网
  • 通化北京网站建设新民个人网站建设优势
  • 贵阳企业网站平台公司属于什么行业
  • 大型网站制作需要多少钱网络代运营推广
  • 芜湖做网站wordpress 中文表单
  • 网站建设面试对策百度收录的网站多久更新一次
  • 徐州网站建设技术深圳品牌策划机构
  • 关于网站开发的个人小结个人网页设计与实现ppt
  • 安徽安能建设集团网站dede小视频网站源码
  • 专门做手工的网站做做网站2023下载
  • 新手做自己的网站软件的开发定制
  • 全屏 网站 代码html5制作网页的代码
  • 去除wordpress版本西安百度seo代理
  • 阜宁网站制作哪家好做网站要源码吗
  • 建设网站费用主要包括哪些内容精准营销及推广
  • 凡网站创建沈阳小装修公司哪家好
  • 松岗网站的建设页面设计计划
  • 好文案网站网站建设需要什么技能