c++新特性 智能指针实验

1.概要

c++新特性 智能指针实验

2.实验

2.1 共同代码

#pragma once
class A
{
public:A();~A();void fun();int a = 5;
};
#include "A.h"
#include <iostream>A::A() {std::cout << "structure\n";
}
A::~A() {std::cout << "destruct\n";
}
void A::fun() {std::cout << "my fun a:"<<a<<"\n";
}

2.2 普通指针

2.2.1 代码 

#include <iostream>
#include "A.h"
#include <thread>
#include <memory>int main()
{A* p_a = new A();A* p_a_1 = p_a;p_a_1->fun();delete p_a;try{p_a_1->fun();}catch (const std::exception&){std::cout << "p_a_1 It's already deconstructed\n";}std::cout << "Hello World!\n";
}

2.2.2 执行结果

structure
my fun a:5
destruct
my fun a:-572662307
Hello World!

2.3 智能指针 

2.3.1 代码

#include <iostream>
#include "A.h"
#include <thread>
#include <memory>
int main()
{std::shared_ptr<A> p_a(new A());std::shared_ptr<A> p_a_1 = p_a;p_a_1->fun();p_a.reset();try{p_a_1->fun();}catch (const std::exception&){std::cout << "p_a_1 It's already deconstructed\n";}std::cout << "Hello World!\n";
}

2.3.2.执行结果

structure
my fun a:5
my fun a:5
Hello World!
destruct

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vben admin Table 实现表格列宽自由拖拽

更改BasicTable.vue文件 Table添加 resize-column“resizeColumn” 添加并 return resizeColumn const resizeColumn (w, col) > { setCacheColumnsByField(col.dataIndex, { width: w }); }; 在column中添加 resizable: true,

linux下编译c++程序报错“undefined reference to `std::allocator<char>::allocator()‘”

问题 linux下编译c程序报错“undefined reference to std::allocator::allocator()”。 原因 找不到c标准库文件。 解决办法 开始尝试给gcc指令添加-L和-l选项指定库路径和库文件名&#xff0c;但是一直不成功&#xff0c;后来把gcc改为g就可以了。

【后端】node.js安装与配置教程

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、安装node.js二、验证安装三、配置 npm四、开发环境配置五、总结 前言 随着开发语言及人工智能工具的普及&#xff0c;使得越来越多的人会主动学习使用一些…

Rust - 引用和借用

上一篇章末尾提到&#xff0c;如果仅仅支持通过转移所有权的方式获取一个值&#xff0c;那会让程序变得复杂。 Rust 能否像其它编程语言一样&#xff0c;使用某个变量的指针或者引用呢&#xff1f;答案是可以。 Rust 通过 借用(Borrowing) 这个行为来达成上述的目的&#xff0…

李沐60_机器翻译数据集——自学笔记

!pip install d2limport os import torch from d2l import torch as d2l下载和预处理数据集 在这个将英语翻译成法语的机器翻译问题中&#xff0c; 英语是源语言&#xff08;source language&#xff09;&#xff0c; 法语是目标语言&#xff08;target language&#xff09;。…

【活动邀请·成都】成都 UG 生成式 AI 工作坊:AI 原生应用的探索与创新!

文章目录 前言一、活动介绍二、报名预约方式三、活动安排四、活动福利五、讲师介绍5.1、陈琪——《如何安全高效地构建生成式 AI 应用》5.2、刘文溢——《AIGC 的产业变革》5.3、胡荣亮——《生成式 AI 在企业应用与实践》5.4、陈明栋——《激发您的灵感&#xff0c;基于生成式…

Swing用法的简单展示

1.简单的登陆界面示例 import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;public class Main extends JFrame {private JTextField usernameField;private JPasswordField passwordField;public Main() {setTitle("登陆界…

FastJson的使用

一、介绍 ​在前后端数据传输交互中&#xff0c;经常会遇到字符串与JSON、XML等格式相互转换与解析&#xff0c;其中JSON以跨语言&#xff0c;跨前后端的优点在开发中被频繁使用&#xff0c;基本上可以说是标准的数据交换格式。FastJson是阿里巴巴用Java语言编写的高性能且功能…

第26天:安全开发-PHP应用模版引用Smarty渲染MVC模型数据联动RCE安全

第二十六天 一、PHP新闻显示-数据库操作读取显示 1.新闻列表 数据库创建新闻存储代码连接数据库读取页面进行自定义显示 二、PHP模版引用-自写模版&Smarty渲染 1.自写模版引用 页面显示样式编排显示数据插入页面引用模版调用触发 2.Smarty模版引用 1.下载&#xff1a…

kafka-spring实现对于topic的监听的开启、暂停、暂停后重新开始、停止

kafka-spring实现对于topic的监听的开启、暂停、暂停后重新开始、停止 直接上代码 import org.apache.kafka.clients.admin.AdminClient; import org.apache.kafka.clients.admin.AdminClientConfig; import org.apache.kafka.clients.consumer.ConsumerConfig; import org.a…

BitmapIndex Scan 与BitmapHeap Scan

BitmapIndex Scan 与BitmapHeap Scan BitmapIndex Scan 与Index Scan 很相似&#xff0c;都是基于索引的扫描&#xff0c;但是BitmapIndex Scan 节点每次执行返回的是一个位图而不是一个元组&#xff0c;其中位图中每位代表了一个扫描到的数据块。而BitmapHeap Scan一般会作为…

4月23日,每日信息差

第一、目前全国共确定工伤保险异地就医直接结算试点城市131个&#xff0c;开通上线工伤医疗、工伤康复、辅助器具配置协议机构共398家。工伤职工按规定完成备案&#xff0c;持社保卡或电子社保卡可以到试点城市的协议机构直接结算相关费用 第二、极兔快递仅用 4 年成为中国国内…

算法和数据结构4.23:

1.测试工程师算法总结&#xff1a; L1排序和查找算法&#xff1a; 复杂度分析 查找算法&#xff1a;顺序查找、二分查找、其他查找算法 排序算法&#xff1a;冒泡排序、快速排序、其他排序算法 L2数据结构-线性表&#xff1a;链表、栈、队列、堆 L3数据结构-非线性表&…

信创传输软件,如何进行国产化替代?

信创产业&#xff0c;即信息技术应用创新产业&#xff0c;它与“863 计划”“973 计划”“核高基” 一脉相承&#xff0c;是我国 IT 产业发展升级采取的长期计划。网络安全事件频发后&#xff0c;中国要确保 IT 相关设施的全部环节国产化&#xff0c;任何不能保证自主可控的环节…

服务器(AIX、Linux、UNIX)性能监视器工具【nmon】使用介绍

目录 ■nmon简介 1.安装 2.使用简介 3.使用&#xff08;具体使用的例子【CPU】【内存】&#xff09; 4.采集数据 5.查看log&#xff08;根据结果&#xff0c;生成报表&#xff09; 6.分析结果 ■nmon简介 nmon&#xff08;"Nigels performance Monitor"&…

终于有人说明白了session、cookie和token的区别

一、首先介绍一下名词&#xff1a;Session、cookie、token&#xff0c;如下&#xff1a; 1.Session会话&#xff1a;客户端A访问服务器&#xff0c;服务器存储A的数据value&#xff0c;把key返回给客户端A&#xff0c;客户端A下次带着key&#xff08;session ID&#xff09;来…

(一)输入验证(语法和语义)

你无法控制进入应用程序的内容&#xff0c;甚至无法控制从数据库进入的内容&#xff0c;因为这些数据之前可能已经注入了。日期&#xff0c;如1900年 不是一个有效的日期&#xff0c;应确保在预期的范围内。因此&#xff0c;任何来自你控制的领域之外的东西&#xff0c;比如来自…

一文浅谈FRTC8563时钟芯片

FRTC8563是NYFEA徕飞公司推出的一款实时时钟芯片&#xff0c;采用SOP-8封装形式。这种封装形式具有体积小、引脚间距小、便于集成等特点&#xff0c;使得FRTC8563能够方便地应用于各种电子设备中。 FRTC8563芯片基于32.768kHz的晶体振荡器工作&#xff0c;这种频率的晶体振荡器…

2024年特种作业操作证(登高架设作业)考试题库及答案

一、选择题 1.带电跨越架宜采用干燥的竹竿、杉杆搭设&#xff0c;严禁使用&#xff08;  &#xff09;等。 A.钢管 B.松木 C.柳木 答案:A 2.跨越架立杆间距为&#xff08;  &#xff09;m。 A.1.2 B.1.5 C.1.8 答案:B 3.跨越架杆件相交时&#xff0c;不得一扣…

生活无趣感的成因与破解之道

在日常生活中&#xff0c;我们不时会听到身边人感慨&#xff1a;“生活真是无趣。”这种感受仿佛超越了年龄、性别、职业界限&#xff0c;成为现代社会的一种普遍情绪。然而&#xff0c;生活本身蕴含着无数色彩与可能&#xff0c;为何在许多人眼中却显得如此平淡乏味&#xff1…