c++智能指针和普通指针之间相互转换

2023-10-27

#include <iostream>
#include <memory>//智能指针的头文件
class test
{
public:
    test(int d) :data(d){}
    int data;
};
int main()
{
    test *p = new test(10);//初始化一个test对象
    std::shared_ptr<test> ptr(p);//构造一个智能指针对象,普通指针转智能指针
    std::cout << ptr->data<<std::endl;//智能指针的行为看起来和普通指针基本一致
    test *q;
    q = ptr.get();//ptr看起来是指针,但本质是对象,它也有成员函数
    std::cout << q->data;
    return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++智能指针和普通指针之间相互转换 的相关文章

  • C语言结构体,共用体所占字节数计算

    字节数 环境 char short int long long long float double 指针 windows 32 gcc 1 2 4 4 8 4 8 4 windows 64 gcc 1 2 4 4 8 4 8 8 无符号型在
  • c++智能指针和普通指针之间相互转换

    include
  • 【C++】异常处理

    一 什么是异常处理 一句话 异常处理就是处理程序中的错误 二 为什么需要异常处理 以及异常处理的基本思想 C 之父Bjarne Stroustrup在 The C Programming Language 中讲到 一个库的作者可以检测出发生
  • C++之函数重载

    目录 1 函数重载 2 函数重载的概念 3 编译器的工作 4 判断函数重载的规则 1 函数的重复声明 2 参数表的比较过程与形参名无关 3 如果在两个函数的参数表中 4 相同的参数列表 5 形参是按值传递方式定义 6 参定义指针或引用 7
  • C++——内存分区

    内存分区模型 内存分区 四大分区 编译后运行前 程序运行后 栈区 堆区 1 new使用 2 释放空间 3 new 数组 内存分区 四大分区 代码区 二进制代码 操作系统管理 全局区 全局变量 静态变量 常量 栈区 编译器自动分配释放 函数的
  • 【C++笔记】C++11常用特性的使用经验总结

    转载 https www cnblogs com feng sc p 5710724 html title12
  • 【C++笔记】《C++编程思想-卷二》笔记

    C 编程思想 笔记 Volume 2 第一章 异常处理 增强错误恢复能力是提高代码健壮性的最有力的途径之一 将try块嵌套在for while do或者 if快中 并且触发异常来试图解决问题 然后重新测试try块中的代码 1 5 清理 1
  • 【C++】随机数rand( ) 和 随机数引擎

    rand 基本 使用随机数时 经常见到的是C标准库提供的函数rand 这个函数会生成一个0到RAND MAX 32767 之间的一个整形数 分布 为了得到一个给定范围内的随机数 通常会对生成的随机数取余 rand n rand n m m
  • 遍历Newtonsoft.Json.Linq.JObject

    JObject 遍历 引用命名空间 using Newtonsoft Json Linq JObject jObject JObject Parse ID 001 Mark Hello Word StringBuilder str new
  • 【C++笔记】《C++编程思想-卷一》笔记

    C 编程思想 笔记 Volume 1 第一章 对象导言 OOP ObjectOriented Programming 面对对象编程 UML Unified Model Language 统一建模语言 堆 stack 和栈 heap 预备知识
  • sort函数的时间、空间复杂度

    sort函数进行排序的时间复杂度为n log2n 原理 不是简单的快排 STL的sort 算法 数据量大时采用Quick Sort 分段递归排序 一旦分段后的数据量小于某个门槛 为避免Quick Sort的递归调用带来过大的额外负荷 就改用
  • C++指针的注意事项

    1 定义指针时 切勿忘记初始化 2 当指针作为函数参数时 函数体内记得判空 3 动态申请内存时 不要忘记判断内存申请是否成功 4 勿忘释放内存 并且只释放堆内存 即动态申请的内存 5 内存释放后 记得将指针置空 6 函数返回值一定不要是局部
  • Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Interop.E

    前段时间做了个将Txt中数据导出到Excel中的C 小应用程序 一直都运行很好的 今天突然有同事安装时 报如下错 Exception Text System InvalidCastException Unable to cast COM o
  • C++初探 5-1(for循环)

    目录 注 for循环 for循环的组成部分 1 表达式和语句 2 非表达式和语句 3 修改规则 for循环的使用例 阶乘的计算与存储 修改循环更新的步长 使用for循环访问字符串 递增运算符 和 递减运算符 副作用和顺序点 前缀格式和后缀格
  • C#输入输出

    目录 一 函数介绍 二 C 中输入输出的一些例子 一 函数介绍 C Console 类主要用于控制台应用程序的输入和输岀操作 Console Read 和Console ReadLine 的区别在于 前者读取是根据空白符隔开且返回int类型
  • VS2010配色方案

    找了很久的配色方案 绝对是精挑细选的 现在分享一下地址 http www hanselman com blog VisualStudioProgrammerThemesGallery aspx 个人喜欢的配色方案 Ragnarok 附图 忘
  • C语言用牛顿迭代法和二分法递归求解三元一次方程

    求解方程 2x 3 4x 2 3x 6 0 牛顿迭代法 牛顿迭代法公式 以下图片均来源于百度 牛顿迭代法用递归实现解三元一次方程 include
  • C语言--swap交换函数

    目录 1 swap1 int a int b 不变 2 swap2 int a int b 不变 3 swap3 int a int b 改变 4 swap4 int a b 改变 1 swap1 int a int b 不变 void s
  • 函数重载 隐藏 重写 覆盖

    重载 Overload 重载是比较容易弄明白的 定义 重载是指不同的函数使用相同的函数名 但是函数的参数个数或类型不同 参数列表不同 调用的时候根据函数的参数来区别不同的函数 函数重载跟返回值无关 规则 函数名相同 必须具有不同的参数列表
  • 【C语言】进制输出加上前缀

    对于八进制数字 它没法和十进制 十六进制区分 因为八进制 十进制和十六进制都包含 0 7 这几个数字 对于十进制数字 它没法和十六进制区分 因为十六进制也包含 0 9 这几个数字 如果十进制数字中还不包含 8 和 9 那么也不能和八进制区分

随机推荐

  • Chrome插件消息传递实例

    首先吐槽 360极速浏览器应用开发平台 的开发文档 在消息传递 http open chrome 360 cn extension dev messaging html 一节中 翻译极其低劣 Sending a request from t
  • SpringBoot通过自定义字段注解以及反射获取对象

    在Java的开发过程中 注解的应用场景是非常广泛的 Java也提供了很多内置的注解 比如 Override Deprecated SuppressWarnings等等 之前也写过一篇注解相关的文章 SpringBoot自定义注解 AOP以及
  • mysql机制_Mysql 重连机制<转载>

    连续两天早上发现服务上不去了 mysql server has gone away 然后又通过mysql客户端连了一下mysql 没问题 看来是程序写错了 我的connection没有重连机制 查了一下相关的资料 django是每次操作都重
  • MA35D1记录1-源码编译

    上面是我的微信和QQ群 欢迎新朋友的加入 今天年假结束 突然发现新唐即将发布MA35D1 去官网和git仓库查了下 新唐趁我放假又偷偷更新了一些资料 之前发布的是yocto的环境 那个我倒也用 但时不时要翻墙 对国内用户来说 多少有点恶心人
  • linux(centos7)下建立web页面

    我打算从centos7配置IP开始记录 就是记录一下我的搭建过程 1 在VMware虚拟机选择centos7镜像安装完毕后 设置用户 密码 发现进入的是图形化界面 于是通过CTRL ALT F3进入命令行界面 现在用的VMware版本导致我
  • 【搞一点AUTOSAR】基于TC397的MACL-ADC配置解读(使用EB)

    搞一点AUTOSAR 基于TC397的MACL ADC配置解读 使用EB 文章目录 搞一点AUTOSAR 基于TC397的MACL ADC配置解读 使用EB 前言 一 ADC模块介绍 1 ADC模块的功能 2 模块相关概念首字母缩略介绍 二
  • Kafka-Consumer 源码解析 -- listener 注册和启动

    Kafka Consumer 源码解析 consumer 启动 和 listener 注册和启动 前言 1 KafkaListener注解说明 2 listener注册 2 1 KafkaListenerAnnotationBeanPost
  • 初学算法心得-二叉搜索树

    初学算法的心得笔记 二叉搜索树 二叉搜索树 插入 搜索 删除 通过标准库管理集合 二叉搜索树 二叉搜索树的结点 struct Node int key Node parent left right 插入 insert以根为节点寻找z该插入的
  • 基本网络常识(随身Wifi)

    答主还在上学 但是流量每次都不够用 每个月基本100GB起伏 但是又没有办宽带 所以想看看有没有很好的解决办法 直到看到了这个随身Wifi 用了一段时间感觉不错 所以也想通过此次来学习一波网络知识 尚未学习计算机网络 所以这次也只能算是基本
  • Git下载、安装与环境配置

    一 git下载与安装 百度git官网根据自己电脑系统下载相应的安装包 下载最新版本 点击红框或蓝框处即可 4 安装好后在桌面界面点击鼠标右键 会出现如下界面 输入git 回车 弹出上图所示界面就说明安装成功啦 二 环境配置 1 git安装好
  • anaconda工作原理及操作大全

    anaconda工作原理 安装路径 pkgs和site packages 1 使用conda install在虚拟环境中安装的包都存放在了 anoconda3 pkgs 这个路径下 然后 我们在我们的虚拟环境中要用到或下载时先到该路径下去找
  • 树莓派卸载QT(树莓派无法卸载QT)

    1 困境 很多人建议使用 MaintenanceTool 这个QT自带的工具卸载 但我在整个系统中搜索不到它 也有建议通过删除库的方式来卸载 但这种方式只是删除了库文件 2 方法 因系统版本而异 打开以下文件夹 usr share appl
  • json key 命名规范_jsonapi

    JSON API 规范 本文定义了一个标准的 JSON API规范 即一个应用于 Web 前后端 Ajax 数据交互规范 用以定义客户端如何获取与修改资源 以及服务器如何响应对应请求 JSON API 设计用来最小化请求的数量 以及客户端与
  • 地理信息安全在线培训考试-判断题

    1 机关 单位可以将依法应当公开的事项确定为国家秘密 不得将涉及国家秘密的信息公开 A 对 B 不对 2 国家保密行政管理部门主管全国的保密工作 县级以上地方各级保密行政管理部门主管本行政区域的保密工作 A 对 B 不对 3 国家秘密的保密
  • 谷歌推出视觉检测AI:专为制造行业质量控制而构建的解决方案

    制造业与人工智能 根据谷歌云的调查 由于新冠的流行 制造业企业更多的使用人工智能和大数据 66 的使用人工智能的制造商表明他们越来越依赖于人工智能 制造业中部署人工智能以协助日常运营的三大子行业为 汽车 原始设备制造商 76 企业供应商 6
  • Linux信号处理函数的一些特征

    Linux信号是一种异步机制 信号处理函数和程序的主循环是两条不同的执行路线 很显然 信号处理函数需要尽可能快的执行完毕 以确保该信号不会被屏蔽太久 为了避免一些竞态条件 信号在处理期间 系统不会再次触发它 一种典型的解决方法是 把信号的主
  • linux中$$、$!、$?等的含义

    Shell本身的PID ProcessID Shell最后运行的后台Process的PID 最后运行的命令的结束代码 返回值 所有参数列表 如 用 括起来的情况 以 1 2 n 的形式输出所有参数 所有参数列表 如 用 括起来的情况 以 1
  • 中小学校创客教育要必备什么

    现在很多中小学为了巩固教育成果 帮助孩子提高学习成绩 都会开设一些专业课 格物斯坦温馨提示 想要帮助青少年们在人工智能领域学有所成 就必须掌握一门机器人编程 开展此编程离不开专业创客实验室的布局的 资源的共享 知识的碰撞 思想的创新 行动的
  • Qt 3D 官方实例3 wireframe

    文章目录 Wireframe 效果 代码阅读 代码结构 二 涉及组件学习 FirstPersonCameraController Material Effect Technique RenderPass Parameter 三 总结 Wir
  • c++智能指针和普通指针之间相互转换

    include