我是靠谱客的博主 淡淡飞机,最近开发中收集的这篇文章主要介绍定义行为像指针的类(类比于智能指针)和定义行为像值的类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一直纠结于智能指针shared_ptr的引用计数如何实现。此前看C++ primer不太注意,今天再次翻到这一知识点,再细看一遍,受益非浅呀。原来引用计数的实现也不过如此。

1、定义行为像指针的类

这里为避免同名,且只强调引用计数的实现,自定义了一个HasPtr类,其中最大特点是引入引用计数器。

类指针的类,最大特点是底层数据共享。只对指针进行了浅拷贝。

引用计数的工作方式如下四大特点:

i、除了初始化对象外,每个构造函数(拷贝构造函数除外)还要创建一个引用计数来记录有多少对象与正在创建的对象共享状态。当创建一个对象时,只有一个对象共享状态,因此将计数器初始化为1。(初始化对象时,计数器计为1

ii、拷贝构造函数不分配新的计数器,而是拷贝给定对象的数据成员,包括计数器。拷贝构造函数递增共享的计数器,指出给定对象的状态又被一个新用户所共享。(拷贝时,递增相应引用计数器

iii、析构函数递减计数器,指出共享状态的用户少了一个。直至计数器变为0,则析构函数释放状态。(只有计数器为0时,才能释放共享内存

iv、拷贝赋值运算符递增右侧运算对象的计数器。递减左侧运算对象赋值之前对象所持有的引用计数器。如果左侧运算对象的计数器变为0,意味着其共享状态没有用户了,拷贝赋值运算符就必须销毁状态。(右增左减相对应计数)<

最后

以上就是淡淡飞机为你收集整理的定义行为像指针的类(类比于智能指针)和定义行为像值的类的全部内容,希望文章能够帮你解决定义行为像指针的类(类比于智能指针)和定义行为像值的类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部