C++ //练习 13.27 定义你自己的使用引用计数版本的HasPtr。

C++ Primer(第5版) 练习 13.27

练习 13.27 定义你自己的使用引用计数版本的HasPtr。

环境:Linux Ubuntu(云服务器)
工具:vim

 

代码块
class HasPtr{
    public:
    HasPtr(const string &s = string()): ps(new string(s)), i(0), use(new size_t(1)) {}
    HasPtr(const HasPtr &s): ps(s.ps), i(s.i), count(s.use) { ++*count; }
    HasPtr& operator= (const HasPtr &s);
    ~HasPtr();

    private:
    string *ps;
    int i;
    size_t *count;
};

HasPtr::~HasPtr(){
    if(--*count == 0){
        delete ps;
        delete count;
    }
}

HasPtr& HasPtr::operator= (const HasPtr &s){
    ++*s.count;
    if(--*count == 0){
        delete ps;
        delete count;
    }
    ps = s.ps;
    i = s.i;
    count = s.count;
    return *this;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/572627.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

3DTiles特性与内容解析

一篇19年整理的比较老的笔记了。更多精彩内容尽在数字孪生平台。 瓦片种类 3DTiles瓦片有多种类型: b3dm(Batched 3D Model,批量3D模型) b3dm瓦片存储了多个个体,b3dm中的glb代表的实际对象应该具有相同的种类但是可能数据内容不同。b3dm…

ROS摄像机标定

文章目录 一、环境准备二、摄像头标定2.1 为什么要标定2.2 标定前准备2.2.1 标定板2.2.2 摄像头调焦 2.3 开始标定2.4 测试标定结果 总结参考资料 一、环境准备 安装usb_cam相机驱动 sudo apt-get install ros-noetic-usb-cam 安装标定功能包 sudo apt-get install ros-noet…

力扣HOT100 - 108. 将有序数组转换为二叉搜索树

解题思路: 二叉搜索树一般使用中序遍历 class Solution {public TreeNode sortedArrayToBST(int[] nums) {return helper(nums,0,nums.length-1);}public TreeNode helper(int[] nums,int left,int right){if(left>right) return null;//确定根节点//总是选择中…

微软发布Phi-3,手机上就能跑,是时候聊聊小型语言模型了|TodayAI

微软公司最近宣布推出了其最新开发的最新AI语言模型,名为Phi-3。这款小型语言模型(SLMs)在市场上以其卓越的性能和成本效率获得关注,尤其在语言处理、推理、编程及数学基准测试方面表现出色,超越了同等规模甚至更大规模…

2024年教你学会如何把学浪视频下载到本地

今年是2024年,依然有很多小伙伴想下载学浪却不知道怎么下载,本文就教大家如何使用小浪助手工具下载学浪视频 小浪助手工具我已经打包好了,有需要的自己取一下 学浪下载工具链接:https://pan.baidu.com/s/1-axc7xDtwU_KtupCe52sV…

华为 2024 届实习校园招聘-硬件通⽤/单板开发——第九套

华为 2024 届实习校园招聘-硬件通⽤/单板开发——第九套 部分题目分享,完整版带答案(有答案和解析,答案非官方,未仔细校正,仅供参考)(共十套)获取(WX:didadidadidida313&#xff0c…

你如何看待AIGC技术?

你如何看待AIGC技术? AIGC技术(Artificial Intelligence Generated Content)是指由人工智能生成的内容。它在许多领域都有应用,包括自然语言处理、图像生成、音频合成等。虽然这些技术可以提高效率和创造力,但也需要注…

IP6505T最大输出24W,集成11种快充输出协议的SOC IC 为车载充电器、快充适配器、智能排插提供完整的解决方案

IP6505T产品概述: IP6505T是一款集成同步开关的降压转换器、 支持 11 种输出快充协议,为车载充电器、快充适配 器、智能排插提供完整的解决方案。内置功率 MOS,输入电压范围是 4.5V 到 32V,输出电压范围是 3V 到 12V,…

C语言编程题_3D接雨水

接雨水的题目描述如下。 (1) 2D接雨水: 字节员工是不是个个都会接雨水 ; (2) 3D接雨水: 407. 接雨水 II ; (3) 3D接雨水: 字节人都会的 3D接雨水 。 问题描述 难度:困难 给你一个 m x n 的矩阵&#xff…

企业有哪些常见网络需求场景?

企业的网络场景需求多种多样,主要取决于其业务规模、运营模式、技术应用等因素。 常见的企业网络场景需求 办公网络需求: 高速稳定的内部网络连接,以支持员工日常办公、数据传输和资源共享。 无线办公网络覆盖,以便员工在会议室…

OpenCV从入门到精通实战(七)——探索图像处理:自定义滤波与OpenCV卷积核

本文主要介绍如何使用Python和OpenCV库通过卷积操作来应用不同的图像滤波效果。主要分为几个步骤:图像的读取与处理、自定义卷积函数的实现、不同卷积核的应用,以及结果的展示。 卷积 在图像处理中,卷积是一种重要的操作,它通过…

C++|运算符重载(3)|日期类的计算

前面介绍了运算符重载相关规则和方法&#xff0c;今天用运算重载函数实现对日期类的操作。 目录 前面准备 实现功能&#xff1a; -运算符 Date类和int 相减 Date类和Date类相减 运算符 &#xff0c;-运算符 ,!运算符 >,>运算符 <,<运算符 &#xff0c;-…

前端vue仿美团风格下拉筛选框在前端开发中的实现与应用

摘要&#xff1a; 在前端开发中&#xff0c;下拉筛选框是提升用户体验和交互效果的重要组件之一。本文将以美团风格的下拉筛选框为例&#xff0c;介绍其实现原理、技术细节以及在实际项目中的应用。通过自定义组件CCDropDownFilter&#xff0c;我们将展示如何创建一个功能丰富、…

蚓链数字化营销系统与数字资产的关系

蚓链数字化营销系统是一种利用数字技术来实现营销目标的系统。它集成了多种数字营销工具和渠道&#xff0c;以收集、分析和利用客户数据&#xff0c;优化营销活动&#xff0c;并提高营销效果。 数字资产是一种新型的资产类别&#xff0c;它们以电子数据的形式存在&#xff0c;可…

快速了解-BTP

名词了解 BTP&#xff1a;SAP Business Technology Platform 是一个技术和业务的平台ETWEAVER &#xff08;SAP NW&#xff09;&#xff1a;NetWeaver本质上是SAP一系列技术产品的集成平台PAAS Cloud Foundry&#xff08;云原生&#xff09;&#xff1a;开源云服务平台烟囱式…

解决Android studio更换sdk地址后flutter项目显示no device selected

问题描述 因为之前sdk的路径在c盘上,经常在更新或下在sdk后c盘饱满,于是就更换了sdk的路径,更换sdk路径后就导致flutter项目在选择设备的时候出现no device selected 找不到设备,但是在device Manager可以看到物理设备或者是虚拟设备。如下图所示。 问题分析 导致这个问题…

【网安小白成长之路】9.sql注入操作

&#x1f42e;博主syst1m 带你 acquire knowledge&#xff01; ✨博客首页——syst1m的博客&#x1f498; &#x1f51e; 《网安小白成长之路(我要变成大佬&#x1f60e;&#xff01;&#xff01;)》真实小白学习历程&#xff0c;手把手带你一起从入门到入狱&#x1f6ad; &…

基于springboot实现实验室管理系统项目【项目源码+论文说明】

基于springboot实现实验室管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了实验室管理系统的开发全过程。通过分析实验室管理系统管理的不足&#xff0c;创建了一个计算机管理实验室管理系统的方案…

使用Hypothesis生成测试数据

Hypothesis是Python的一个高级测试库。它允许编写测试用例时参数化&#xff0c;然后生成使测试失败的简单易懂的测试数据。可以用更少的工作在代码中发现更多的bug。 安装 pip install hypothesis如何设计测试数据 通过介绍也许你还不了解它是干嘛的&#xff0c;没关系&…

Redis面试题三(集群)

目录 1.Redis 集群搭建有几种模式 2.Redis 主从复制的实现 全量同步 增量同步 3.Redis 的主从同步策略 1. 全量同步&#xff08;Full Resynchronization&#xff09; 2. 增量同步&#xff08;Incremental Replication&#xff09; 4.Redis一致性hash 基本原理 节点动态…
最新文章