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

wordpress epub插件网络推广与优化

wordpress epub插件,网络推广与优化,上海企业网站的建设,电子商务网站开发实训总结本节继续介绍智能指针,不了解的读者可以先阅读——C11新特性之shared_ptr智能指针-CSDN博客 1.介绍 unique_ptr是C11标准提供的另一种智能指针。与shared_ptr不同的是,unique_ptr指针指向的堆内存无法同其他unique_ptr共享,也就是每一片堆内…

本节继续介绍智能指针,不了解的读者可以先阅读——C++11新特性之shared_ptr智能指针-CSDN博客

1.介绍

        unique_ptr是C++11标准提供的另一种智能指针。与shared_ptr不同的是,unique_ptr指针指向的堆内存无法同其他unique_ptr共享,也就是每一片堆内存空间只能有一个unique_ptr指向。

每个unique_ptr指针指向的堆内存空间的引用计数都只能为1,一旦指针放弃所指堆内存空间,该空间立马释放回收。

2.用法

        unique_ptr智能指针也是以模版类的形式提供的,定义在<memory>头文件,并位于std命名空间。在使用中首先要包含这两条语句。

        (1)unique_ptr智能指针的创建

        1.创建空指针。

std::unique_ptr<int> p1();std::unique_ptr<int> p2(nullptr);

        2.创建具体指向的指针。

std::unique_ptr<int> p3(new int);

 注意,unique_ptr中没有类似make_shared()这样的模版函数

          3.由于unique_ptr不共享内存,因此,没有拷贝构造函数,只有移动构造函数。例如:

std::unique_ptr<int> p4(new int);
std::unique_ptr<int> p5(p4);//错误,堆内存不共享
std::unique_ptr<int> p5(std::move(p4));//正确,调用移动构造函数

        对于调用移动构造函数的 p4 和 p5 来说,p5 将获取 p4 所指堆空间的所有权,而 p4 将变成空指针(nullptr)。

        4.自定义释放规则。和 shared_ptr 指针不同,为 unique_ptr 自定义释放规则,只能采用函数对象的方式。例如:

//自定义的释放规则
struct myDel
{void operator()(int *p) {delete p;}
};
std::unique_ptr<int, myDel> p6(new int);

        (2)成员方法

  • operator*()——获取当前 unique_ptr 指针指向的数据。
  • operator->()——重载 -> 号,当智能指针指向的数据类型为自定义的结构体时,通过 -> 运算符获取其内部的指定成员。
  • operator =()——重载了 = 赋值号,从而可以将 nullptr 或者一个右值 unique_ptr 指针直接赋值给当前同类型的 unique_ptr 指针。
  • operator[]()——重载了 [] 运算符,当 unique_ptr 指针指向一个数组时,可以直接通过 [] 获取指定下标位置处的数据。
  • operator bool()——unique_ptr 指针可直接作为 if 语句的判断条件,以判断该指针是否为空,如果为空,则为 false;反之为 true。
  • get()——获取当前 unique_ptr 指针内部包含的普通指针。
  • get_deleter()——获取当前 unique_ptr 指针释放堆内存空间所用的规则。
  • release()——释放当前 unique_ptr 指针对所指堆内存的所有权,但该存储空间并不会被销毁。
  • reset(p)——其中 p 表示一个普通指针,如果 p 为 nullptr,则当前 unique_ptr 也变成空指针;反之,则该函数会释放当前 unique_ptr 指针指向的堆内存(如果有),然后获取 p 所指堆内存的所有权(p 为 nullptr)。
  • swap(x)    交换当前 unique_ptr 指针和同类型的 x 指针。

除此之外,C++11标准还支持同类型的 unique_ptr 指针之间,以及 unique_ptr 和 nullptr 之间,做 ==,!=,<,<=,>,>= 运算。

3.总结 

        unique_ptr对其所指对象拥有唯一所有权,同一时间只能有一个unique_ptr指向同一个对象。当unique_ptr被销毁,其所指对象也会自动销毁。

如有错误,敬请指正!

http://www.hkea.cn/news/828376/

相关文章:

  • 加强新闻网站建设建议seo高手培训
  • 安丘网站建设制作怎样制作网页设计
  • 食品网站建设优化案例热门职业培训班
  • 龙华新区做网站大地seo视频
  • 网站彩票投注员做啥的真正免费的网站建站平台运营
  • wordpress 中文注册鸡西seo
  • 佛山企业如何建网站seo的内容怎么优化
  • 在什么网站上做自媒体windows优化大师是自带的吗
  • 装修公司的网站怎么做第三方营销平台有哪些
  • 百度公司做网站吗手机网页链接制作
  • 武汉移动网站制作今天新闻最新消息
  • 酒泉建设厅网站百度seo刷排名软件
  • 天津个人网站建设yandex引擎
  • 网站改版建设 有哪些内容网络营销策划方案怎么做
  • 网站建设拾金手指下拉seo的实现方式
  • 北京宣传片湖南seo优化哪家好
  • 下载app 的网站 如何做黑帽seo排名技术
  • 个人是否做众筹网站哪里可以免费推广广告
  • 外贸网站该怎么做青岛百度推广优化怎么做的
  • 网站建设中 网页代码优化关键词排名公司
  • 网站标题优化怎么做泉州百度首页优化
  • 学习网站建设的是什么专业优化网站排名公司
  • 固定ip做网站西安网站建设推广
  • 做响应式网站好不好软文发布门户网站
  • 重庆做网站建设的公司哪家好最基本的网站设计
  • 长春网站制作wang网站营销软文
  • discuz 网站搬家市场营销的策划方案
  • 做婚礼网站的公司简介seo网站关键词优化软件
  • 哪些客户需要做网站推广平台排名前十名
  • 团购的网站扣佣金分录怎么做厦门百度竞价