DAY11

问题一:指针与引用的区别

疑问 为什么引用的本质是指针常量,但是对它求sizeof却是变量所占内存空间的大小那??????????

1.引用是给变量起了个别名,而指针本身是个变量,储存变量的地址

2.引用必须初始化,但指针变量可以不初始化,为野指针

3.引用不能初始化为空,但是指针可以初始化为空,为空指针

4.引用的本质是指针常量,所以不能改变引用关系,但是指针可以改变指向

5.用引用接收传递过来的参数可以不判空,但是指针必须判空

6.没有多级的引用,俩个&&是右值引用不是多级引用,但是又多级指针

7.引用所占空间的大小就是它起别名变量的大小,但是指针所占空间的大小不是4字节就是8字节,看编译环境

8.引用自增后相当于变量的自增,但是指针自增后相当于p的指向向后偏移了它存储类型所占空间大小那么长

问题二:c++中static的作用

1.C/C++共有的

1.静态全局变量可以使作用域缩小变为同一个文件下

2.静态局部变量可以使声明周期变长,不会随着函数的结束而结束

3.静态全局函数也是可以使作用域缩小变为同一个文件下

2.C++独有的

静态成员变量

1.存储再静态区,不占对象内存

2.属于类不属于对象,所有对象共享一份静态成员变量

3.类内声明,类外初始化

4.可以通过类名或者对象名进行调用

5.分配内存在编译阶段,主函数之前

静态成员函数

1.存储在代码段,不占对象内存

2.属于类不属于对象

3.没有this指针,所以不能访问静态成员变量,也不能调用静态成员函数

4.能访问的只有,传递过来的形参,静态成员变量和函数,以及全局变量和全局函数

5.俩种访问方式对象名或者是类名

静态函数的好处和静态全局变量一样,都是别的文件不可以访问,在不同文件下定义相同的名字不会发生冲突

深层:

1.为什么静态成员函数不能申明为const?

使用const函数的目的是不想让在常函数内部修改成员变量的值,但是我静态成员函数已经没有this指针了,肯定不会改变非静态成员变量的值了,也就不用担心这个问题

2.为什么静态成员变量要类内定义,类外初始化那?

因为静态成员变量属于类不属于对象,所以如果在类内初始化的话,岂不是每一个对象都拥有了一份静态成员变量,这不就矛盾了吗,所以静态成员变量必须类内声明,类外初始化

3.static关键字为什么只能出现在类内部的声明语句中,而不能重复出现在类外的定义中?

类出现的目的就是多文件之间的交互,你把这个类static了,作用域变成本文件了,还咋交互了!

4.为什么常量静态成员数据的初始化可以放在类内(注意:只有静态常量整型数据成员才可以在类中初始化

疑问,不懂!!!!!

image-20231220211049254

5.为什么静态成员函数只能访问静态成员变量

因为静态成员函数没有this指针,无法访问非静态成员,所以只能访问静态成员

6.静态成员函数与非静态成员函数的区别

我认为只要的区别是this指针

7.为什么要用得静态成员变量和静态成员函数

因为静态成员函数和静态成员变量都是属于类不属于对象,多个对象共享一份,可以共享!!!

本文章参考c++中static的作用_static在c++中的作用-CSDN博客

用自己的话回答了该作者在文件提出的问题!!

问题三:智能指针????????????????????????????????

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

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

相关文章

llvm后端之DAG设计

llvm后端之DAG设计 引言1 核心类设计2 类型系统2.1 MVT::SimpleValueType2.2 MVT2.3 EVT 3 节点类型 引言 llvm后端将中端的IR转为有向无环图,即DAG。如下图: 图中黑色箭头为数据依赖;蓝色线和红色线为控制依赖。蓝色表示指令序列化时两个节…

【教3妹学编程-算法题】循环移位后的矩阵相似检查

插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 坚持不懈,越努力越幸运,大家一起学习鸭~~~ 3妹:“太阳当空照,花儿对我笑&…

干货!什么是财务业务化和业务财务化?

此回答摘录自《自价值财务:以业务与财务的双向奔赴,成就合规与增长双赢》,原文近7000字,作者纷享销客CFO郭保彬先生。更多业财一体化内容详见纷享销客最新专刊《上市公司如何打好合规与增长双赢之战》。 如今,财务管理…

Linux系统配置与服务管理基础(二)

目录 一、通配符 1. 简介 2. 作用 3. 符号与效果 4. 示例 二、别名alias 1. 语法选项 2. 示例 3. 补充说明 三、查看磁盘使用量 1. 语法选项 2. ll与du区别 3. 补充 四、创建目录mkdir 1. 语法选项 2. 示例 四、建立空文件touch 1. 语法选项 2. 附加功能 3…

【Kotlin】基础变量、集合和安全操作符

文章目录 数字字面常量显式转换数值类型转换背后 位运算符字符串字符串模板修饰符数组集合(Kotlin自带)通过序列提高效率惰性求值序列的操作方式中间操作末端操作 可null类型安全调用操作符 ?.操作符 ?:非空断言操作符 !! 使用类型检测及自动类型转换安…

第二百一十七回 修改页面导航中遇到的问题

文章目录 1. 问题介绍2. 使用方法3. 代码与分析3.1 示例代码3.2 代码分析4. 内容总结我们在上一章回中介绍了"分享一种更新页面数据的方法"相关的内容,本章回中将介绍修改页面导航中遇到的问题.闲话休提,让我们一起Talk Flutter吧。 1. 问题介绍 我们在页面之间导…

uni-app获取指定时间为周几,日期格式化为 “YYYY-MM-DD“ 的形式

在 uni-app 中,你可以使用 JavaScript 的 Date 对象来获取指定时间是星期几。以下是一个简单的示例代码,演示了如何在 uni-app 中实现这一功能: // 假设有一个指定的日期时间 const specifiedDate new Date(2023-12-25);// 获取这个指定日期…

go学习笔记

指针使用 // Person 定义一个人的结构体 type Person struct {// 姓名Name string// 年龄Age int// 性别Sex string// 身份证号idNumber string }//1、声明一个结构体变量var person Personfmt.Println(person.Name) // ""fmt.Println(person.Age) // 0fmt…

学习——html基础

什么是HTML Hyper Text Markup Language (超文本标记语言) 标记又俗称标签(tag)&#xff0c;一般格式&#xff1a; 如 <h1></h1>标签里还可以有属性(Attribute)&#xff1a; <tagName Atrribute “value" /> 如 <meta charset"utf-8"…

selenium自动化webdriver下载及安装

1、确认浏览器的版本 在浏览器的地址栏&#xff0c;输入chrome://version/&#xff0c;回车后即可查看到对应版本 2、找到对应的chromedriver版本 2.1 114及之前的版本可以通过点击下载chromedriver,根据版本号&#xff08;只看大版本&#xff09;下载对应文件 2.2 116版本通过…

【进阶篇】YOLOv8实现K折交叉验证——解决数据集样本稀少和类别不平衡的难题,让你的模型评估更加稳健

YOLOv8专栏导航&#xff1a;点击此处跳转 K折交叉验证 K折交叉验证&#xff08;K-Fold Cross-Validation&#xff09;是一种常用的机器学习模型评估方法&#xff0c;可以帮助我们评估模型的性能&#xff0c;特别适用于数据集相对较小的情况。 在K折交叉验证中&#xff0c;将原…

redis相关面试题

1、说一说你在项目中的redis的应用场景&#xff1f; 需要频繁查询的数据&#xff0c;分布式锁&#xff0c;spring session 5大value类型&#xff1a;string hash list set zset基本上就是缓存为的是服务无状态&#xff0c;延申思考&#xff0c;看你的项目有哪些数据结构或对象…

springboot 整合 springdataJPA 自定义操作 JPQL和SQL

1.接口StudentJPQLSQLMapper.java package com.jmj.springDataApp.mapper;import com.jmj.springDataApp.pojo.Student; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.da…

final的详解

在Java中&#xff0c;final 关键字用于表示不可改变的实体&#xff0c;可以应用于变量、方法、类和指令重排序。它有不同的作用&#xff0c;具体取决于它被应用的上下文。 1.对于变量&#xff1a; 如果一个变量被声明为 final&#xff0c;则该变量的值在一旦被赋予后就不能再被…

Starting the Docker Engine...一直转圈

出现的问题&#xff1a; 原因排查&#xff1a; 看了网上的很多篇文章&#xff0c;每个原因都排查了&#xff0c;没有发现问题。 遇到这样的情况应先看自己是否安装成功 打开运行&#xff0c;在空框中输入powershell并点击确定&#xff1a; docker version 显示版本证明安装…

3. 控制流程

3. 控制流程 ​ 跟任何的程序设计语言一样&#xff0c;Java使用条件语句和循环结构确定控制流程。 3.1 块作用域 ​ 块是指由一对大括号括起来的若干条简单的Java语句&#xff0c;块确定了变量的作用域。一个块可以嵌套在另一个块中。 常见例子&#xff1a; public static v…

微信小程序-选择和分割打开地图选择位置的信息

一、 前言 废话不多说&#xff0c;单刀直入。 本文要实现的功能是微信小程序中打开地图选择位置&#xff0c;以及将返回的位置信息分割。 例如返回的位置信息是&#xff1a;广东省深圳市龙岗区xxxxx小区 分割后变成&#xff1a; {province: "广东省",city: "深…

前端技术基建过程

1. 技术基建: 是研发团队的技术基础设施建设,是一个团队通用的技术能力沉淀. (1). 业务、架构、基建理解: ①. 业务支撑是活在当下②. 技术基建是活在未来(2). 意义: ①. 技术的价值在于解决业务问题,"业务支撑"和"基础建设"都是为了帮助业务解决问题②.…

042.Python异常处理_异常捕获

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…

SpringBoot前后端分离开发项目部署时,项目打包准备工作

第一步&#xff1a;项目打包之前&#xff0c;拉前后端代码 拉完代码后&#xff0c;再执行下面操作&#xff08;确保项目能正常启动并运行&#xff09; 后端&#xff08;执行如下操作&#xff09; mvn clean install -T 8 -Dmaven.test.skiptrue -Dmaven.compile.forktrue 执行…