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

做网站六安咸宁做网站的公司

做网站六安,咸宁做网站的公司,微信公众号功能模块,移动端seo本篇文章详细探讨下如何使用裸指针实现智能指针。 补充内容 由于本篇文章主要是探讨怎么实现三种智能指针,但是在编码过程中,博主可能会使用些有些同学不了解的特性,为了保证大家思绪不被打断,博主先把这些小特性介绍出来,大家选择性参考。 1、什么是RAII? RAII(Reso…本篇文章详细探讨下如何使用裸指针实现智能指针。 补充内容 由于本篇文章主要是探讨怎么实现三种智能指针,但是在编码过程中,博主可能会使用些有些同学不了解的特性,为了保证大家思绪不被打断,博主先把这些小特性介绍出来,大家选择性参考。 1、什么是RAII? RAII(Resource Acquisition Is Initialization)是一种资源管理技术,常用于 C++ 编程中。其核心理念是将资源的获取和释放与对象的生命周期绑定在一起。这样,资源的管理(如内存、文件句柄、网络连接等)可以通过对象的构造和析构来自动化,确保资源不会泄漏。 RAII 的基本原则 资源获取: 当一个对象被创建时(即构造函数被调用),它会获取所需的资源。这可以是动态分配的内存、打开的文件、网络连接等。 资源释放: 当对象的生命周期结束时(即析构函数被调用),它会自动释放所获取的资源。这意味着无论是正常退出还是由于异常退出,资源都会得到正确释放。 2、noexcept是什么 用noexcept声明函数表示此函数不会抛出异常。编译器在处理这样的函数时,就不会进行不必要的异常安全处理,从而提高性能。并且,noexcept可以确保函数在发生错误(异常)时,会直接终止程序,不会进入异常处理模块,确保程序不会进入未被定义的状态。 例如如下代码 虽然func内部抛出异常后,程序会直接调用std::terminate()结束运行,而不会进入catch程序块。 void func() noexcept {throw std::runtime_error("This will terminate the program"); }int main() {try {func();} catch (...) {// 不会被执行}return 0; } 3、声明函数的末尾的=delete是什么作用 1、=delete:函数声明时,末尾添加=delete表示此函数被禁用,通常用于禁用复制构造函数、赋值运算符等特定函数。使用方法如下 class MyClass { public:// 拷贝构造函数被删除MyClass(const MyClass) = delete;// 拷贝赋值运算符被删除MyClass operator=(const MyClass) = delete; } 4、转换运算符 在 C++ 中,转换运算符是一种特殊的成员函数,用于将类的对象转换为其他类型的对象。它允许你定义如何将自定义类型转换为内置类型或其他用户定义类型。 转换运算符将在发生显式类型转换和隐式类型转换时被调用。 class MyClass { private:int __data = 0; public:MyClass(double v) : __data(v) {}operator int() {cout "operator int called" endl;return __data;}operator double() {cout "operator double called" endl;return static_castdouble(__data);}operator bool(){cout "operator bool called" endl;return __data != 0;} };int main() {MyClass obj(10); // 正确!显式转换,调用MyClass(int)构造函数if(obj) // 发生隐式类型转换,operator bool被调用{int a = obj; // 发生隐式类型转换,operator int被调用double b = static_castdouble(obj); //发生显式类型转换,operator int被调用}return 0; } 方案 1、首先,定义一个模板类,即使用泛型编程,使得该类可以管理各种类别; 2、其次,需要根据各个智能指针的特点重载运算符:*(解引用)、-(指向)、[]、= 等使得这个类能方便的进行和指针的操作; 3、实现智能指针的常用函数; 4、最重要的,是在类中实现好内存管理。 智能指针是使用了RAII技术用于实现资源的管理。 实现 一、unique_ptr unique_ptr是一种独占所有权的智能指针,表示一个指针只能被一个unique_ptr所有,不能被复制,只能被移动。所以,我们在实现unique_ptr的时候,除了上诉整体方案,需要注意将其的拷贝构造函数禁用。 具体实现 1、构造函数 1) 在类内管理一个传入数据类型的指针; 2) 在构造时候开辟内存或者赋值,并在析构函数中释放,实现RAII技术; 3) 因为是独占资源的指针,需要将拷贝构造函数禁用; 4)允许移动构造函数,将传入对象的资源接管过来,同时注意释放传入对象对资源的控制(将__ptr置nullptr) templatetypename T class unique_ptr{ private:
http://www.w-s-a.com/news/962335/

相关文章:

  • 可以做直播卖产品的网站陕西省建设银行网站
  • 搭建网站的英语seo优化专员招聘
  • 做网站深紫色搭配什么颜色网站的在线支付怎么做
  • 中国最大网站建设公司长沙专业做网站公司哪家好
  • 金峰辉网站建设菏泽财富中心网站建设
  • 怎么做网站站长视频企业网站开发意义
  • 网站创建多少钱商标自助查询系统官网
  • 免费做App和网站的平台广州做网站推广的公司
  • 衡水做网站推广的公司wordpress相册滑动
  • 不用域名也可以做网站公司网站建设制作难么
  • 学做网站培训机构wordpress 图片拉伸
  • 成都捕鱼网站建设wordpress自定义文章类别
  • wordpress网站怎么加速湖北网站建设企业
  • 迁安做网站中的cms开发南平网站建设公司
  • 肥西县住房和城乡建设局网站代驾系统定制开发
  • 网站建设明细报价表 服务器qq是哪家公司的产品
  • html链接网站模板wordpress怎么调用简码
  • 网站域名怎么查简述网站推广的五要素
  • 咸宁网站设计公司app安装下载
  • 丝网外贸做哪些网站最优的赣州网站建设
  • 如何做网站不被查网站开发工程师岗位说明书
  • 做网站需要vps吗网站建设后怎样发信息
  • 网站建立风格二手交易网站开发可参考文献
  • 成都微信网站开发优化大师优化项目有哪些
  • 哪个网站做自考题目免费郑州网站建设公司qq
  • 地方性的网站有前途顺的网络做网站好不好
  • 学校申请建设网站的原因不要网站域名
  • 推荐响应式网站建设子域名查询工具
  • 如何建设学校的微网站广告推广是什么
  • 设计类专业哪个就业前景好网站建设seoppt