【C++:类的基础认识和this指针】

C++的类与C语言的struct结构体有啥区别?

默认的访问限定符不同

类的简要 

  • 关键字:class
  • {}里面是类的主体,特别注意:{}后面的;不可以省略
  • 类中的变量叫做成员变量,类中的函数叫做成员函数
  • 类中访问有三种访问权限,分别是:private,protect,public
  • 访问限定符的作用域从访问限定符开始到下一个访问限定符结束,如果后面没有其他访问限定符,则在遇到};就结束作用域

声明和定义分离时,有可能两个类中会有相同的函数,所以,在函数名那里加入类名就可以避免此冲突。类本身就是一个域。

实例化的对象中,每一个对象只存储他们的成员变量,成员函数存储在公共区域(代码区),这种方式的存储减少了空间浪费。  在使用成员函数时,根据函数名call地址进行调用

如果一个类中没有成员变量,该类的大小为1字节,而不是0字节,这里大小给1字节的原因是标志该类的存在

类的大小

类同样遵守内存对齐的规则

为什么需要内存对齐?

读取变量大小时可能会出现重复读取的情况再进行内存组合,效率低

this指针 

this指针是类中成员函数的第一个隐含的参数

特点:

1.不可以在成员函数形参或者实参那里显示写,会报错

2.可以在成员函数内部使用

3.this不能被修改

4.this指针存放在栈上,This指针是一个形参,形参在栈上存储

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

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

相关文章

单/多线程--协程--异步爬虫

免责声明:本文仅做技术交流与学习... 目录 了解进程和线程 单个线程(主线程)在执行 多线程 线程池 协程(爬虫多用) 假异步:(同步) 真异步: 爬虫代码模版 异步-爬虫 同步效果--19秒 异步效果--7秒 了解进程和线程 ​ # --------------------> # ------> # …

Anaconda新建python版本

由于新版本的Anaconda自带的python是3.11的,国内镜像一些库,不好下载。特更新为常见的python3.9 1.新建环境,指定新python版本 #conda create --name 名称 python(版本) #示例 conda create --name liuenv python3.9 #指定环境的存储位置 c…

MinIO:开源对象存储解决方案的领先者

MinIO:开源对象存储解决方案的领先者 MinIO 是一款开源的对象存储系统,致力于提供高性能、可伸缩、安全的数据存储解决方案。 官方解释:MinIO 是一个基于Apache License v2。0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适…

WAIC:生成式 AI 时代的到来,高通创新未来!

目录 01 在终端侧算力上,动作最快的就是高通 02 模型优化,完成最后一块拼图 在WAIC上,高通展示的生成式AI创新让我们看到了未来的曙光。 生成式 AI 的爆发带来了意想不到的产业格局变化,其速度之快令人惊叹。 仅在一个月前&…

SchedulingConfigurer使用教程

SchedulingConfigurer使用教程:Java定时任务的高阶使用 在 Java 开发中,定时任务的管理和执行是一个常见需求。Spring 提供了多种方式来处理定时任务,其中 SchedulingConfigurer 是一个强大且灵活的接口,允许我们对定时任务进行更…

说一下浏览器中的强缓存和协商缓存的区别

写在前面 对于一道高频的面试题,可能很多小伙伴还不知道这两者的概念,不知道是用来做什么的,以及有什么好处,强缓存和协商缓存是 Web 缓存机制的重要组成部分,它们在优化 Web 应用性能方面发挥了重要作用,…

Vue + SpringBoot:el-upload组件单文件、多文件上传实战解析

文章目录 单文件上传后端前端 多文件上传后端前端 单文件上传 后端 PostMapping("/uploadDxfFile") public R uploadDxfFile(RequestParam(value "file", required true) MultipartFile multipartFile) throws Exception {// 文件校验工作if (multipar…

web Worker学习笔记 | 浏览器切换标签,定时器失效的解决办法

文章目录 web Workerweb Worker介绍 - 多线程解决方案浏览器多进程架构 web workers 的使用关闭worker引用其他js文件 浏览器切换标签,定时器失效的解决办法窗口可见性 API解决定时器失效的方案 web Worker web Worker介绍 - 多线程解决方案 Web Workers 是Html5提…

服务器数据恢复—DS5300存储raid5阵列数据恢复案例

服务器存储数据恢复环境: 某单位一台某品牌DS5300存储,1个机头4个扩展柜,50块硬盘组建2组RAID5磁盘阵列(一组raid5阵列有27块成员盘,存放Oracle数据库文件;另外一组raid5阵列有23块成员盘)。存储…

大带宽独立服务器的购买和配置流程是怎样的?

在当前互联网时代,大带宽独立服务器越来越受到企业和个人用户的青睐。其稳定性和高速的数据传输速率可以为用户提供更好的互联网体验。下面我们将详细介绍如何购买和配置大带宽独立服务器。 第一步:选择合适的服务器提供商 在选择服务器提供商时&#…

CF1982D Beauty of the mountains

【题意】 Nikita 喜欢爬山。当地的山可以看作一个由 ( n m ) (n \times m) (nm) 个格子组成的 n m n \times m nm 的矩形,每一个格子都有一个初始非负高度 a i , j a_{i,j} ai,j​。 格子有两种类型: 有雪无雪 Nikita 有一种超能力:…

数组相关内容

一、数组 就是一个集合,里面存放了相同类型的数据元素 特点: 1.数组中的每个数据元素都是相同的数据类型 2.数组是由连续内存位置组成的 二、一维数组 定义方式 1.数据类型 数组名[数组长度]; 2.数据类型 数组名[数组长度]{值1&#xff0…

Jacoco的覆盖率原理

收集覆盖率信息的方法 Runtime Profiling Runtime Profiling是一种在程序运行时进行的性能分析技术,它可以帮助开发者了解程序的运行情况,识别性能瓶颈和优化程序性能。由于是在程序运行时进行,runtime profiling 能够提供实时的数据,便于理解程序在实际运行条件下的行为…

周报7.1-7.7

学习内容 了解注意力机制的相关内容,学习注意力提示、注意力汇聚、评分函数、Bahdanau注意力、多头注意力、Transformer等内容。了解Bahdanau注意力和Transformer的模型代码实现。Qt的碳汇源继续需求整改 下周计划 学习Pytorch的代码实战,学习使用Ten…

HashMap中的put()方法

一. HashMap底层结构 HashMap底层是由哈希表(数组),链表,红黑树构成,哈希表存储的类型是一个节点类型,哈希表默认长度为16,它不会每个位置都用,当哈希表中的元素个数大于等于负载因子(0.75)*哈希表长度就会扩容到原来的2倍 二. 底层的一些常量 三. HashMap的put()方法 当插入一…

ONLYOFFICE最新8.1版本——桌面编辑器简单测评

前言 大家好,我是小雨,看到最近ONLYOFFICE更新了最新的版本,更新了一下当前版本来具体的测评一下,先来看看官网提供的各类更新信息,下面是我找到的三个主页,包括功能演示链接,官网连接以及专门…

阿里云存储

传统存储面临的挑战 现如今,数据与土地、劳动力、资本、技术并称为五大生产要素,数据成为数字经济发展的重要引擎。大数据时代,数据处理的需求急剧增长,越来越多的智能设备以及新应用如区块链、机器学习训练和AI等产生大量的数据…

复分析——第10章——Θ函数应用(E.M. Stein R. Shakarchi)

第10章 Θ函数的应用 (Applications of Theta Functions) The problem of the representation of an integer n as the sum of a given number k of integral squares is one of the most celebrated in the theory of numbers. Its history may be traced back to Diopha…

CV03_mAP计算以及COCO评价标准

COCO数据集回顾:CV02_超强数据集:MSCOCO数据集的简单介绍-CSDN博客 1.1 简介 在目标检测领域中,mAP(mean Average Precision,平均精度均值)是一个广泛使用的性能评估指标,用于衡量目标检测模型…

短信验证码实现

一、设置AccessKey 创建用户并配置使用权限,使我们拥有调用 aliyunAPI 的权限,之后会生成 AccessKeyID 和 AccessKey密码,后面我们会使用到。需要注意的是 AccessKeyID 和 AccessKey密码生成后我们需要将他保存起来,否则后期无法查…