类和对象——(3)再识对象

归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言📝
你说那里有你的梦想,你说只要你足够努力就能成功!
一起加油!

目录
一、前言:
二、定义一个对象:
🔑说明:
三、通过对象访问类成员:
💦例:学生类对象访问学生类中的公有成员。
四、通过对象指针、对象引用访问类成员:
💦对象指针访问类中成员:
💦例:学生类对象指针访问学生类中的公有成员。
🔑说明:
💦对象引用访问类中成员:
五、总结:
六、共勉:
一、前言:
类本质上是用户自定义的一种数据类型,对象可以看成是通过类这种数据类型定义的变量。
二、定义一个对象:
可以在定义类的同时定义对象;也可以在声明类之后,在需要时再定义对象。定义对象的格式与定义一般变量的格式相同。
🔑说明:
💦声明了一个类以后,便声明了一种类型,它并不接收或存储具体的值,只有在定义了对象后,系统才为对象并且只为对象分配存储空间。
💦在声明类的同时定义对象为全局对象,在它的生存期内任何函数都可以使用它如果在一个函数中定义,那它就是局部对象,只在函数内部有效。
三、通过对象访问类成员:
在定义了类对象后,就可以通过类对象访问类中成员; 注意通过类外部的类对象只能直接访问其公有成员,不能直接访问其私有成员和保护成员,类对象可以通过类的公有成员间接实现对私有成员和保护成员的访问。
💦例:学生类对象访问学生类中的公有成员。
#include<iostream>
#include<string>
using namespace std;class Student{private:int ID;string name;string sex;int age;public:void input(int pid,string pname,string psex,int page);void print();
};void Student::input(int pid,string pname,string psex,int page){ID=pid;name=pname;sex=psex;age=page;
}void Student::print(){cout<<"ID:"<<ID<<"\nName:"<<name<<"\nSex:"<<sex<<"\nAge:"<<age<<endl;
}int main(){Student std;std.input(20230011,"张三","男",18);std.print();
}

四、通过对象指针、对象引用访问类成员:
如果类是用户自定义的一种数据类型,那么对象就是自定义的数据类型一类声明的一种应量,变量可以有对应的指针和引用,因此对象也可以有对应的指针和引用。
💦对象指针访问类中成员:
对象指针,就是一个指针变量指向对象,也就是指针变量中存储的是对象的地址。由于类和结构具有相似性,对象指针和结构指针的使用方法也是相似的,也是使用箭头操作符->来访问该指针所指向的对象的成员数据或成员函数。
指针访问类成员的一般格式如下:
对象指针变量名->公有成员
或者也可以等价写成下列形式
(*对象指针变量名).公有成员
这两种表达形式是等价的。
💦例:学生类对象指针访问学生类中的公有成员。
#include<iostream> #include<string> using namespace std;class Student{private:int ID;string name;string sex;int age;public:void input(int pid,string pname,string psex,int page);void print(); };void Student::input(int pid,string pname,string psex,int page){ID=pid;name=pname;sex=psex;age=page; }void Student::print(){cout<<"ID:"<<ID<<"\nName:"<<name<<"\nSex:"<<sex<<"\nAge:"<<age<<endl; }int main(){//动态申请一个学生对象空间,空间的首地址放在Student类对象指针变量pstd Student *pstd=new Student;pstd->input(20230011,"张三","男",18);pstd->print();delete pstd;return 0; }
🔑说明:
*pstd 是堆对象,程序在运行过程中根据需要可随时建立或删除对象,通过 new 运算符创建对象,通过 delete 运算符删除对象。
💦对象引用访问类中成员:
引用的概念,引用就是给变量起一个别名,对引用进行操作就是对变量本身进行操作。通过引用又提供了另外一种访问变量的方式,给程序设计带来了很大的方便,尤其是引用作为函数形参传递时。对象也可以有引用,声明一个对象引用的格式如下:
类名 &引用名 a = 对象名 b;
此时相当于给已有的对象 b 又取了一个名称叫作 a,对a的操作与对b的操作一样例如,对于学生类 Student,可以定义对象引用访问公有成员,代码片断如下:
Student s;//定义一个Student类对象s Student &rs=s;//声明一个s的引用rs,相当于给对象s取了一个别名rs rs.input(20230011,"张三","男",18);//对rs操作就是对s操作 rs.print();//等价与s.print();
五、总结:
- ⭐ 类本质上是用户自定义的一种数据类型,对象可以看成是通过类这种数据类型定义的变量。
- ⭐ 可以在定义类的同时定义对象;也可以在声明类之后,在需要时再定义对象。
- ⭐ 注意通过类外部的类对象只能直接访问其公有成员,不能直接访问其私有成员和保护成员。
- ⭐ 类对象可以通过类的公有成员间接实现对私有成员和保护成员的访问。
- ⭐ 对象也可以有对应的指针和引用。
- ⭐ 对象指针,就是一个指针变量指向对象,也就是指针变量中存储的是对象的地址
六、共勉:
以上就是我对类和对象——(3)再识对象的理解,希望本篇文章对你有所帮助,也希望可以支持支持博主,后续博主也会定期更新学习记录,记录学习过程中的点点滴滴。如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对类和对象的理解,请持续关注我哦!!!
相关文章:
类和对象——(3)再识对象
归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍 收藏⭐ 留言📝 你说那里有你的梦想,…...
【UGUI】实现背包的常用操作
1. 添加物品 首先,你需要一个包含物品信息的类,比如 InventoryItem: using UnityEngine;[CreateAssetMenu(fileName "NewInventoryItem", menuName "Inventory/Item")] public class InventoryItem : ScriptableObje…...
单机zk安装与zk四字命令
一、下载 Apache ZooKeeper可以在 Linux 系统中使用 wget 命令直接下载,官网地址 Apache ZooKeeper 二、解压 tar -zxvf apache-zookeeper-3.8.3-bin.tar.gz 进去解压的目录中, 进入到 zk 解压目录的 conf 目录,复制 zoo_sample.cfg 文件&a…...
matlab导入excel数据两种常见的方法
在MATLAB中导入Excel数据,你可以使用几种不同的方法。下面是两种常见的方法: 方法一:使用readtable函数 readtable函数允许你导入Excel文件中的数据,并将其存储为表格。 % 指定文件路径 filename C:\your\path\to\file.xlsx;%…...
华为全屋智能5.0,无为而“智”
在赖特西塔里埃森混凝土墙的中心壁龛里,一块铜牌上刻着一些英文,意思是“建筑的意义不是屋顶和墙,而是人们生活于其中的空间”。 这句话,取自老子《道德经》中的“凿户牖以为室,当其无,有室之用”。 《理想…...
Flask 实现Token认证机制
在Flask框架中,实现Token认证机制并不是一件复杂的事情。除了使用官方提供的flask_httpauth模块或者第三方模块flask-jwt,我们还可以考虑自己实现一个简易版的Token认证工具。自定义Token认证机制的本质是生成一个令牌(Token)&…...
MATLAB 和 Simulink 官方文档下载地址
MATLAB 官方文档中文版下载网址: https://ww2.mathworks.cn/help/pdf_doc/matlab/index.html 如图: MATLAB 官方文档英文版下载网址: https://ww2.mathworks.cn/help/pdf_doc/matlab/index.html?langen 如图: Simulink 官…...
【Element】el-switch开关 点击弹窗确认框时状态先改变----点击弹窗取消框失效
一、背景 需求:在列表中添加定期出账的开关按钮,点击开关时,原来的状态不改变,弹出弹窗;点击弹窗取消按钮:状态不改变,点击弹窗确定按钮:状态改变,并调取列表数据刷新页…...
Java 中最常用的设计模式之一,工厂模式模式的写法,
文章目录 工厂模式1、简单工厂模式2、工厂模式3、抽象工厂4、总结 工厂模式 工厂模式是 Java 中最常用的设计模式之一,工厂模式模式的写法有好几种,这里主要介绍三种:简单工厂模式、工厂模式、抽象工厂模式 1、简单工厂模式 这里以制造cof…...
HTML的学习
知己知彼百战不殆 打算学习一下javascript 所以先从基础的html语言开始 其实就是头部 和身体 头部控制整个 html的语言 title等 <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"width…...
JS设计模式 — 行为委托
回顾一下原型,发现[[Prototype]]机制就是指对象中的一个内部链接引用另一个对象,这个机制的本质就是对象之间的关联关系 1、面相委托的设计 Task {setID: function(ID) { this.id ID; },outputID: function() { console.log( this.id ); } }; // 让 …...
Microsoft Expression Web - 网页布局
在本章中,我们将介绍网页的基本布局。在创建我们的网页布局之前,我们需要考虑我们的内容,然后设计我们希望如何呈现该内容,因为它是在我们的网站上可见的内容。 由我们如何呈现我们的内容,以便我们的观众找到我们的网…...
Java SpringBoot Controller常见写法
文章目录 环境Controller调用脚本运行结果总结 环境 系统: windows 11 工具: java, idea, git bash Controller 接口常见有以下几种方式 其中: Tobj 调用脚本 我的是windows 系统,使用 git bash 窗口运行, 用 cmd 或者 power shell 会有问题 curl …...
【驱动】SPI驱动分析(五)-模拟SPI驱动
简介 模拟SPI驱动是一种软件实现的SPI总线驱动。在没有硬件SPI控制器的系统中,通过软件模拟实现SPI总线的功能。它允许在不修改硬件的情况下,通过GPIO(通用输入/输出)引脚模拟SPI总线的通信,从而与SPI设备进行数据交换…...
人工智能_机器学习056_拉格朗日乘子法原理推导_公式由来详解_原理详解---人工智能工作笔记0096
https://blog.csdn.net/Soft_Po/article/details/118332454 这里有老师的一篇文章介绍拉格朗日乘子法的原理推导 结合老师的这篇文章我们来看一下详细的推导过程 可以看到上一节我们说,一个有条件的,函数,可以转换为一个,无条件的函数, 根据拉格朗日乘子法,可以创建出一个等…...
记RocketMQ本地开发环境搭建始末
前言 最近工作中涉及到了RocketMQ的应用,为方便开发决定本地搭建一套RocketMQ的使用环境。 果然实践是个好东西... VMware虚拟环境搭建 这个网上有很多教程,只会比我写的详细有条理,这里就不在赘述了。 虚拟机搭建好之后每次重启电脑都无…...
2023年全国职业院校技能大赛“ 信息安全管理与评估” 测试题2
一.单选题 1、下列不属于口令安全威胁的是?( ) A、 弱口令 B、 明文传输 C、 MD5 加密 D、 多账户共用一个密码 2、在学校或单位如果发现自己的计算机感染了病毒,应首先采取什么措施 ( )。 A、断开网络 B、告知领导 C、杀毒 D、重…...
flutter开发实战-readmore长文本展开和收缩控件
flutter开发实战-readmore长文本展开和收缩控件 当长文本展开和收缩控件,我们需要使用readmore来处理长文本展开和收缩,方便阅读 一、引入readmore 在工程的pubspec.yaml中引入插件 readmore: ^2.1.0ReadMoreText的属性如下 const ReadMoreText(this.…...
如何使用简单的分支策略来保护您的 Git 项目
良好的分支策略可以使项目源代码获得一致且安全的数据,所有协作者可以在更短的生命周期内共享和访问这些数据。 您必须以灵活的方式设计项目模型,以便对所有成员角色和权限进行良好的管理。 我要谈论的并没有什么令人惊讶的新鲜事。您可能已经知道一些…...
vue3的 nextTick()的使用
引言: 当你修改了响应式状态时,DOM 会被自动更新。但是需要注意的是,DOM 更新不是同步的。Vue 会在“next tick”更新周期中缓冲所有状态的修改,以确保不管你进行了多少次状态修改,每个组件都只会被更新一次。 要等待…...
iOS 开发进阶,用 SniffMaster 实现 iPhone 抓包深度分析
在 iOS 开发中,抓到请求只是第一步,更实际其实是比如 想确认某个字段到底有没有发出去想复现线上问题想观察 App 在异常网络下的行为 这时候抓包就不只看有没有数据,而是抓出来的数据是否完整、是否可控、是否可复现场景一:接口参…...
计算机毕业设计springboot职业中介信息管理系统 基于SpringBoot的人力资源招聘与求职匹配平台 SpringBoot驱动的在线人才招聘与就业服务系统
计算机毕业设计springboot职业中介信息管理系统 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着经济的发展和社会的进步,就业市场变得越来越复杂。求职者需要面对…...
嵌入式开发中的静态代码分析工具实战指南
1. 嵌入式代码静态分析工具概述作为一名嵌入式开发工程师,我深知在资源受限的MCU环境中,代码质量直接决定了产品的稳定性和可靠性。传统的C语言编译器虽然能发现语法错误,但对代码设计缺陷和潜在风险往往无能为力。这正是静态代码分析工具的价…...
Ostrakon-VL-8B辅助作业批改实战:识别手写公式与图表
Ostrakon-VL-8B辅助作业批改实战:识别手写公式与图表 每次批改理科作业,是不是都感觉眼睛快看花了?特别是面对几十份甚至上百份的手写作业,那些密密麻麻的公式、歪歪扭扭的电路图,还有各式各样的化学符号,…...
别再死记硬背MVC了!通过Unity连连看实战,我搞懂了数据与UI分离的5个真实好处
从连连看实战看数据与UI分离的五大工程化收益 在游戏开发领域,设计模式常常被视为"高级概念"而被初学者敬而远之。但当我真正在Unity中实现一个简单的连连看游戏时,才深刻体会到MVC模式中数据与UI分离带来的实际价值。这不是教科书上的理论说教…...
FastAPI + TinyDB并发陷阱与实战:告别数据错乱的解决方案
核心摘要本文针对在FastAPI框架下使用TinyDB(JSON文件数据库)时遇到的并发写入数据冲突、错乱问题,深入浅出地解释了问题根源,并提供了从“文件锁”到“内存队列”再到“乐观锁”的三种由浅入深的实战解决方案,帮助你根…...
北海穷游必吃的美食哪家好
在北海,海鲜饮食是城市风味的底色。从侨港风情街到南湾夜市,从海鲜大排档到连锁餐饮店,消费者对海鲜的期待始终围绕着“鲜活”“原味”“实惠”三个关键词。近年来,随着游客结构的变化——年轻群体、学生党、自驾家庭及宠物出行者…...
SEO优化对网站收录有什么作用
SEO优化对网站收录有什么作用 在当今互联网信息爆炸的时代,网站的收录问题显得尤为重要。SEO优化对于网站的收录有着至关重要的作用,无论是对于新开的网站还是已经运营一段时间的网站,优化都能为其带来更多的流量和潜在客户。SEO优化对网站收…...
STMPE811电阻触摸屏驱动设计与实现
1. 项目概述TS_DISCO_F429ZI 是专为 STMicroelectronics STM32F429ZI 探索套件(DISCO_F429ZI)设计的触摸屏驱动类,其核心职责是抽象并控制该开发板上集成的 LCD 模块所搭载的电阻式触摸屏控制器。该类并非通用型触摸驱动,而是深度…...
MOS管选型实战指南
MOS管(金属氧化物半导体场效应晶体管)是现代电力电子和开关电路的核心元件。选型失误的后果往往是灾难性的——效率低下、发热严重、驱动振荡、甚至炸管冒烟。相比电阻电容,MOS管的选型需要权衡的维度更多:电压、电流、导通电阻、开关速度、驱动电压、热阻、体二极管特性……...
