C++学习/复习4--与类相关的概念/默认成员函数/运算符重载/Date类实现案例

news2024/9/22 10:02:42

一、类和对象

1.本章概要

2.C++中的结构体(struct与class) 升级为类

(1)类及成员函数的两种定义方式 

            声明与定义分离

(2)权限 

注意1:struct/class在权限上的区别

(3)封装

(4)作用域

(5)创建对象

(6)对象大小的计算与存储

         注:此处是方式3即成员函数放在公共代码区,非类的内部

注意1:内存对齐的主要原因包括
  • 平台和移植性。不同的硬件平台可能对内存访问有特定的要求。某些硬件平台只能访问特定地址处的特定类型数据,如果数据未对齐,可能导致硬件异常或性能下降
  • 性能。为了提高访问速度,对齐数据可以使处理器更高效地加载数据,减少因数据跨越多个内存页或缓存行而导致的额外访问时间。
  • 存储空间优化。内存对齐有助于减少内存碎片,提高内存利用率,使结构体或对象的大小更加紧凑,节省内存空间。
  • 访问效率。内存对齐使得处理器可以一次访问获取所需数据,而不是进行多次访问。
  • 硬件IO特性。内存的IO操作通常以特定的数据宽度(如64位)为单位进行,因此内存对齐对于提高IO效率至关重要。
 注意2:空类大小

(7)this指针 

1、特性及本质

2.受this影响下C/C++的对比

二、类中的函数与操作符重载

1.本章概要

2.六个默认成员函数

(1)构造函数

          注意1:当手动实现该函数时,保证其函数与类名相同,具体参数、函数体视具体情况定
          注意2:可以重载是因为可能有多种初始化的方式
          注意3:何时适合自己写,何时无需自己写

(2)析构函数

注意1:何时适合自己写,何时无需自己写

(3)拷贝构造函数

注意1:深拷贝,深拷贝必须自己实现,要与默认的生成的浅拷贝区分

三、总结:1.注意析构/构造何时需自己写,何时不需。2.注意拷贝构造有深浅拷贝之分。3.注意内置数据类型与自定义数据类型对三种函数的影响4.一般“内置”“动态申请需手动释放”的需要自己实现,相反则不需  

四、赋值等运算符的重载

注意1:赋值运算符重载是默认生成的,其他如大于小于则不是

五、const成员函数

六、(const)取地址运算符重载

注意:同之前的默认成员函数一样是默认的、也不可重载成全局函数,不常用

七、Date类实现与本章知识点运用

   

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

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

相关文章

连公司WiFi后,无法访问外网,怎么回事,如何解决?

文章目录 封面问题描述问题探究什么是DNS?分布式,层次数据库如何理解分布式?如何理解层次? 本地DNS服务器迭代查询,递归查询DNS缓存参考资料 封面 问题描述 从甲方项目组返回公司后,我习惯性连上公司WiFi&…

50 http通用服务器

虽然我们说,应用层协议是我们程序猿自己定的 但实际上,已经有大佬们定义了一些现成的,又非常好用的应用层协议,供我们直接参考使用,http(超文本传输协议)就是其中之一 目录 认识urlurlencode和…

数据库(5)——DDL 表操作

表查询 先要进入到某一个数据库中才可使用这些指令。 SHOW TABLES; 可查询当前数据库中所有的表。 表创建 CREATE TABLE 表名( 字段1 类型 [COMMENT 字段1注释] ...... 字段n 类型 [COMMENT 字段n注释] )[COMMENT 表注释]; 例如,在student数据库里创建一张studen…

LeetCode热题100——矩阵

73.矩阵清零 题目 给定一个 *m* x *n* 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]] 示例…

记.netcore部署到银河麒麟linux服务器过程详解

一.服务器配置 操作系统:银河麒麟桌面操作系统V10 CPU:intel i5 内存:16G 内核:5.10.0.8-generic 未激活 二.运行环境安装 .netcore 6.0 runtime时安装下载离线包 Download .NET 6.0 (Linux, macOS, and Windows) -下载完后进行解压 sudo su #提权 mkdir -p $HOME/…

救援运输车3D三维虚拟展馆能分享给更多潜在买家

随着消费趋势的演进,个性化和附加服务需求日益凸显。加上疫情等因素影响下,一场创新的革命正在悄然兴起——3D沉浸式看车。 3D沉浸式看车,重新定义购车体验 不再受限于地理位置和时间,3D沉浸式看车是利用web3d开发建模技术将真实比…

C# 机构仿真实例

1、实现连杆带动滑块运动 一个连杆旋转带动另一个连杆,另一个连杆拖动滑块,点击“开始”按钮开始运动,再点击按钮,则停止运动。 2、实现程序 #region 机构仿真Image image null;Timer timer new Timer();int width 0;int heig…

一个机器学习问题的重新定义

任何事物都有两面性。 一些机器学习问题也是如此。并非每个回归问题(你认为的)都需要回归。仔细考虑和审视问题的业务不仅可以帮助开发更好的模型,还可以找到有效的解决方案。 重构或重新定义(reframing)是一种改变机…

【rust工具链】

1 查看正在使用的工具链 命令:rustup show 结果显示: 从图中可以看到正在使用的是rustc 1.76.0版本,也可以看到已安装的所有版本的工具链 2 使用默认工具链 命令:rustup default 版本号 例如:rustup default 1.58…

Python数据分析实验四:数据分析综合应用开发

目录 一、实验目的与要求二、主要实验过程1、加载数据集2、数据预处理3、划分数据集4、创建模型估计器5、模型拟合6、模型性能评估 三、主要程序清单和运行结果四、实验体会 一、实验目的与要求 1、目的: 综合运用所学知识,选取有实际背景的应用问题进行…

大模型中的Tokenizer

在使用GPT 、BERT模型输入词语常常会先进行tokenize 。 tokenize的目标是把输入的文本流,切分成一个个子串,每个子串相对有完整的语义,便于学习embedding表达和后续模型的使用。 一、粒度 三种粒度:word/subword/char word词&a…

人工智能+跨癌种分析,能否解决医学数据样本量小的问题?【医学AI|顶刊速递|05-26】

小罗碎碎念 先说明,目前小罗只是硕士,以下个人观点很有可能不准确,欢迎批评指正!!小罗虚心听取有益建议!! 众所周知,医学数据相比于其他领域的数据来说,属于小样本数据。…

Java----Maven详解

前言 Maven是Java项目的构建工具,通过项目对象模型(POM)管理项目配置信息,自动化构建、测试和部署过程。开发人员可定义项目结构、依赖和构建流程,提高开发效率和质量。本文介绍基本概念和用法,帮助您更好…

ros2编写pcl节点加载pcd文件

初次学习ros2和pcl,尝试在ros2中创建节点,加载pcd文件,并在rviz中进行可视化,记录一下整个过程。 编辑环境 ubuntu20.04 ros2_foxy 创建节点 mkdir -p proj_ws_pcl/src #创建工程文件夹 cd proj_ws_pcl/src #创建源码文件夹 …

社交媒体数据恢复:绿洲

本教程将向您展示如何在绿洲平台上备份和恢复数据,但不涉及推荐任何具体的数据恢复软件。 一、绿洲平台数据备份 为了确保数据的安全,在日常使用过程中,我们需要定期备份绿洲平台上的数据。以下是备份绿洲平台数据的步骤: 登录绿…

opencv进阶 ——(四)图像处理之去高光

去高光步骤: 1、转换成灰度图 2、二值化图像,得到高光区域 3、进行膨胀操作,放大高光区域,以此得到高光蒙版 4、通过illuminationChange函数对高光区域消除高光

Vite + Vue3 部署 GitHub

因为静态资源是可以部署到 GitHub 上,自己顺便学习部署网站 因为我使用的是 Vite 工具,官方有提供相应 Demo 部署静态站点 | Vite 官方中文文档 新建文件夹 .github 然后再建一个文件夹 workflows 新建文件 main.yml 文件 直接使用官方文档 demo #…

携手AI,如何共赢未来?

5/25日参加了一个培训分享会,由博奥研究院、武汉博奕咨询和华工科技联合举办,主题是“携手Ai,共赢未来”。 抱着跟书友线下交流的心态我参与了,参与前我对博奥做了基础了解,他们跟工信部考试和教育中心有合作&#x…

区间预测 | Matlab实现DNN-KDE深度神经网络结合核密度估计多置信区间多变量回归区间预测

区间预测 | Matlab实现DNN-KDE深度神经网络结合核密度估计多置信区间多变量回归区间预测 目录 区间预测 | Matlab实现DNN-KDE深度神经网络结合核密度估计多置信区间多变量回归区间预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现DNN-KDE深度神经网络结合…