Chapter 8 怎样使用类和对象(下篇)

⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️

8.2 对象数组

1.对象数组的每一个元素都是同类的对象

2.在建立数组时,同样要调用构造函数,如果有50个元素,那么就要调用50次构造函数

3.编译系统只为每一个对象元素的构造函数传递一个是实参,所以在定义数组时提供的实参个数不能超过数组元素个数

4.提问:如果构造函数有多个参数,在定义对象数组时应当怎样实现初始化呢?

   回答:在花括号中分别写出构造函数名并在括号内指定实参

   例子:Student stu[3]={

               Student(1001,12,12);

               Student(1002,13,13);

               Student(1003,14,14);

                };

⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️

8.3 对象指针

1.对象空间的起始地址就是对象指针

2.作用:可以定义一个指针数组,用来存放对象的地址,这就是指向对象的指针变量

a:指向对象数据成员的指针

形式:数据名 *指针变量名

b:指向对象成员函数的指针

注意⚠️:定义指向对象成员函数的指针变量的方法和定义指向普通函数的指针变量方法不同

a:定义指普通函数的指针变量

形式:类型名  (*指针变量名)(参数列表)

void (*p)();//p指向void型函数的指针变量

b:定义指向对象成员函数的指针变量

形式:数据类型名(类名::*指针变量名)(参数列表)

void (Time:: *p)();//定义p是指向Time类中公用成员函数的指针变量

c:使指针变量指向一个公用成员函数的一般形式:指针变量名=&类名::成员函数名

3.指向当前对象的this指针:在每一个成员函数中都包含一个特殊的指针,这个指针的名字是固定的,称为this

a:作用:它是指向本类对象的指针,他的值是当前被调用的成员函数所在的对象的起始地址

b:this指针在系统中是自动实现的

⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️

8.4 公用数据的保护

1.常对象的形式:类名   const   对象名[(实参名)] 也可以是const 类名 对象名[(实参名)]

2.常成员函数可以访问常对象中的数据成员,但仍然不允许修改常对象中数据成员的值

注意⚠️:常成员函数不能调用另一个非const成员函数

3.指向对象的常指针

a:将指针变量声明为const型,这样指针变量始终保持为初值,不能改变,即其指向不变,指向对象的常指针变量的值不能改变,即始终指向一个对象

b:形式:类名 * const 指针变量名

4.指向常对象的指针变量

a:形式:const 类型名 * 指针变量名

b:如果一个变量已被声明为常变量,只能用指向常变量的指针变量指向她它,而不能用一般的(指向非const型变量)指针变量去指向它

c:当希望在调用函数时对象的值不被修改,就应当把形参定义为指向常对象的指针变量,同时用对象的地址作实参(对象可以是const或非const)

⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️⚡️

9.5 对象的动态建立和释放

1.用new运算符动态建立对象,用delete运算符撤销对象

欢迎指正,共同学习!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

day18【LeetCode力扣】19.删除链表的倒数第N个结点

day18【LeetCode力扣】19.删除链表的倒数第N个结点 1.题目描述 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入&a…

SpringBoot+SSM项目实战 苍穹外卖(10) Spring Task WebSocket

继续上一节的内容,本节学习Spring Task和WebSocket,并完成订单状态定时处理、来单提醒和客户催单功能。 目录 Spring Task(cron表达式)入门案例 订单状态定时处理WebSocket入门案例 来单提醒客户催单 Spring Task(cron…

pyqt调用UI和开启子进程

UI制作 qrc 注意调用UI前把样式表里绑定的资源(qrc)转换成py导入进去 xxx.qrc转xxx.py 两种方法 1命令 pyrcc5 -o icons_rc.py icons.qrc 2外部工具pyrcc 实参 -o $FileNameWithoutExtension$.py $FileNameWithoutExtension$.qrcsdz.qrc→→sdaz.py 在代码里写 import…

Springboot3新特性:开发第一个 GraalVM 本机应用程序(完整教程)

在讲述之前,各位先自行在网上下载并安装Visual Studio 2022,安装的时候别忘了勾选msvc 概述:GraalVM 本机应用程序(Native Image)是使用 GraalVM 的一个特性,允许将 Java 应用程序编译成本机二进制文件&am…

视频剪辑软件Camtasia2024最新版本快捷键大全

Camtasia Studio是一款专门录制屏幕动作的工具,它能在任何颜色模式下轻松地记录 屏幕动作,包括影像、音效、鼠标移动轨迹、解说声音等等。 今天来给大家介绍一下Camtasia快捷键的相关内容,Camtasia也是一个十分好用的电脑屏幕录制与视频剪辑…

GRE隧道(初级VPN)配置步骤

一、拓朴图: 二、配置步骤: 1、配置IP 2、R1、R2 配置nat,代理内网地址通过G0/0/0口上外网 acl 2000rule permit source anyquit # int G0/0/0ip addr 100.1.1.1 24nat outbound 2000 # 3、R1、R2 配置默认出口路由G0/0/0,这一…

Windows启动MongoDB服务报错(错误 1053:服务没有及时响应启动或控制请求)

问题描述:修改MongoDB服务bin目录下的mongod.cfg,然后在任务管理器找到MongoDB服务-->右键-->点击【开始】,启动失败无提示: 右键点击任务管理器的MongoDB服务-->点击【打开服务】,跳转到服务页面-->找到M…

C++ QtCreator启动执行报错的各类问题解决++持续更新!!

1.QTCreator启动报错"由于找不到 python310.dll" 在QtCreator加载自动缩进的LLVM插件后, 再次打开Qt时, 会报错找不到python310.dll 解决方法:下载python310.dll,随后复制到目录:C:\Program Files\LLVM\bin 即可解决该问题。下载路径附件如…

VUE element-ui实现表格动态展示、动态删减列、动态排序、动态搜索条件配置、表单组件化。

1、实现效果 1.1、文件目录 1.2、说明 1、本组件支持列表的表头自定义配置,checkbox实现 2、本组件支持列表列排序,vuedraggable是拖拽插件,上图中字段管理里的拖拽效果 ,需要的话请自行npm install 3、本组件支持查询条件动态…

使用 C++/WinRT 创作 API

本主题展示了如何直接或间接使用 winrt::implements 基结构来创作 C/WinRT API 。 在此上下文中,“创作”的同义词有“生成”或“实现” 。 本主题介绍以下在 C/WinRT 类型上实现 API 的情形(按此顺序)。 你不是在创作一个 Windows 运行时类…

Python——函数的参数

1.位置参数 位置参数可以在函数中设置一个或者多个参数,但是必须有对应个数的值传入该函数才能成功调用,例如: def power(x):return x*xprint(powr(5)) 如果传入的值与对应函数设置的位置参数不符合,则会报错: Traceba…

小白浅学Vue3

目录 前端环境 依赖管理NPM安装配置 创建Vue项目 模板语法 文本插值{{ }} v-html 属性绑定 条件渲染 v-if 、v-else-if 、v-else v-show 列表渲染v-for 状态管理 事件 事件 事件传参 事件修饰符 数组变化监听 计算属性 Class绑定 Style绑定 侦听器 v-mod…

mysql关于创建表的小试题

目录 例题: 解题思路及步骤: 实验步骤: 步骤一:创建数据库 步骤二:创建表 步骤三:插入数据 例题: 1、创建一个英雄表(hero),管于四大名著的主键 nam…

City Terrace Pack

“城市与露台资源包” 的主要特点:• 属于系列的一部分。• 极为逼真和现代化的城市。• 高度优化的低多边形和逼真资源。• 可用于 Oculus、GearVR、Vive、Daydream。• 可用于低端和高端移动设备。• 灵感来自于现代建筑和设计。• 36 种不同的摩天大楼和建筑物。• 其中每个…

Pandas实战100例-专栏介绍

Pandas,Python数据科学的心脏,是探索和分析数据世界的强大工具。想象一下,用几行代码就能洞察庞大数据集的秘密,无论是金融市场趋势还是社交媒体动态。 通过Pandas,你可以轻松地整理、清洗、转换数据,将杂…

ivrobot乐高EV3 鲸鱼 能力风暴自制遥控手柄库文件和编程样例 使用指南

编程示例: 资源下载链接: https://download.csdn.net/download/abilix_tony/88739582 EV3 mindstorms能用基础版和高阶版(条形编程界面) EV3 classroom只能用基础版 (scratch模块形状编程界面) 请根据使…

手撕乘积(**Multiplication** **Product**): 穷举和图示(1)

手撕乘积(Multiplication & Product): 穷举和图示(1) 乘积 r ⋅ s ∑ i 1 s r r r ⋯ r ⏟ s times ∑ j 1 r s s s ⋯ s ⏟ r times r\cdot s\sum _{i1}^{s}r\underbrace {rr\cdots r} _{s{\text{ times}}}\sum _{j1}^{r}s\underbrace {ss\cdots s} _{r{\tex…

[代码复现]BrainGNN: Interpretable Brain Graph Neural Network for fMRI Analysis

目录 1. 论文资料 2. 代码复现步骤及可能存在的问题 2.1. 环境配置 2.2. 代码运行 3. 为啥跑这个代码 1. 论文资料 (1)论文原文:BrainGNN:用于fMRI分析的可解释脑图神经网络 - ScienceDirect (2)论文…

2024.1.14每日一题

LeetCode 83.删除排序链表中的重复元素 83. 删除排序链表中的重复元素 - 力扣(LeetCode) 题目描述 给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。 示例 1: 输…

蓝桥杯练习题(八)

📑前言 本文主要是【算法】——蓝桥杯练习题(八)的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 …