类和对象——(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)再识对象的理解,希望本篇文章对你有所帮助,也希望可以支持支持博主,后续博主也会定期更新学习记录,记录学习过程中的点点滴滴。如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对类和对象的理解,请持续关注我哦!!! 

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

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

相关文章

MySQL官网推荐书籍

MySQL官网推荐书籍 图片有防盗链csdn转存失败。有图版传送门MySQL官网推荐书籍 高效的MySQL性能&#xff1a;Daniel Nichter的最佳实践和技术 Daniel Nichter 向您展示了如何应用直接影响 MySQL 性能的最佳实践和技术。您将学习如何通过分析查询执行、为常见 SQL 子句和表联接…

KMP基础架构

前言 Kotlin可以用来开发全栈, 我们所熟悉的各个端几乎都支持(除了鸿蒙) 而我们要开发好KMP项目需要一个好的基础架构,这样不仅代码更清晰,而且能共享更多的代码 正文 我们可以先将KMP分为前端和服务端 它们两端也能共享一些代码,比如接口声明,bean类,基础工具类等 前端和…

Go语言 值传递

官方说法&#xff0c;Go中只有值传递&#xff0c;没有引用传递 而Go语言中的一些让你觉得它是引用传递的原因&#xff0c;是因为Go语言有值类型和引用类型&#xff0c;但是它们都是值传递。 值类型 有int、float、bool、string、array、sturct等 引用类型有slice&#xff0c…

Logstash使用指南

介绍 Logstash是一个开源数据收集引擎&#xff0c;具有实时管道功能。它可以动态地将来自不同数据源的数据统一起来&#xff0c;并将数据标准化到你所选择的目的地。尽管Logstash的早期目标是搜集日志&#xff0c;现在它的功能已完全不只于此。任何事件类型都可以加入分析&…

docker (镜像分层、阿里云镜像推送/拉去)-day02

一、镜像概念 Docker 镜像是 Docker 容器的基础&#xff0c;它提供了一种可重复使用的、跨平台的部署方式&#xff0c;使得应用程序的部署和运行变得简单和高效。 把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),打包好…

C语言练习记录(蓝桥杯练习)(小蓝数点)

目录 小蓝数点 第一题程序的输出结果是&#xff1f;: 第二题下面代码的执行结果是什么&#xff1f;: 第三题下面代码的执行结果是什么&#xff1f;: 第四题关于关系操作符说法错误的是&#xff1f;: 第五题对于下面代码段&#xff0c;y的值为&#xff1f; 第六题sum 21 …

Java 数据结构篇-用链表、数组实现栈

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 栈的说明 2.0 用链表来实现栈 2.1 实现栈 - 入栈方法&#xff08;push&#xff09; 2.2 实现栈 - 出栈&#xff08;pop&#xff09; 2.3 实现栈 - 查看栈顶元素…

国产linux单用户模式破解无密码登陆 (麒麟系统用户登录密码遗忘解决办法)

笔者手里有一批国产linu系统&#xff0c;目前开始用在日常的工作生产环境中&#xff0c;我这个老程序猿勉为其难的充当运维的或网管的角色。 国产linux系统常见的为麒麟Linux&#xff0c;统信UOS等&#xff0c;基本都是基于debian再开发的linux。 问题描述&#xff1a; 因为…

基于AT89C51单片机的倒数计时器设计

1&#xff0e;设计任务 利用AT89C51单片机为核心控制元件,设计一个简易的数字电压表&#xff0c;设计的系统实用性强、操作简单&#xff0c;实现了智能化、数字化。 本设计采用单片机为主控芯片&#xff0c;结合周边电路组成LED彩灯的闪烁控制系统器&#xff0c;用来控制红色…

用于缓存一些固定名称的小组件

项目中&#xff0c;用于缓存姓名、地名、单位名称等一些较固定名称的id-name小组件。用于减少一些表的关连操作和冗余字段。优化代码结构。扩展也方便&#xff0c;写不同的枚举就行了。 具体用法&#xff1a; {NameCacheUser.USER.getName(userId);NameCacheUser.ACCOUNT.getN…

excel合并单元格教程

在表格里&#xff0c;总是会遇到一级表格、二级表格的区别&#xff0c;这时候一级表格会需要合并成一个大格子&#xff0c;那么excel如何合并单元格呢&#xff0c;其实使用快捷键或者功能键就可以了。 excel如何合并单元格&#xff1a; 1、首先我们用鼠标选中所有要合并的单元…

最大公约数的C语言实现xdoj31

时间限制: 1 S 内存限制: 1000 Kb 问题描述: 最大公约数&#xff08;GCD&#xff09;指某几个整数共有因子中最大的一个&#xff0c;最大公约数具有如下性质&#xff0c; gcd(a,0)a gcd(a,1)1 因此当两个数中有一个为0时&#xff0c;gcd是不为0的那个整数&#xff…

XXL-Job详解(一):组件架构

目录 XXL-Job特性系统组成架构图调度模块剖析任务 “运行模式” 剖析执行器 XXL-Job XXL-JOB是一个分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线&#xff0c;开箱即用。 特性 1、简单&#…

java+springboot实验室管理系统的设计与实现ssm+jsp

课题研究内容&#xff1a; &#xff08;1&#xff09; 系统需求分析&#xff08;构成模块&#xff0c;系统流程&#xff0c;功能结构图&#xff0c;系统需求&#xff09; &#xff08;2&#xff09; 实验室课程安排功能模块&#xff08;课程的录入和调补&#xff09; &#xff…

wyler水平仪维修WYLER倾角仪维修CH-8405

瑞士WYLER电子水平仪维修&#xff1b;BIueCLINO倾斜度测量仪维修&#xff1b;wyler电子倾角仪维修。 水平仪常见故障及处理方法 1、 仪表通电不工作。 A、检查仪表220V电源端子接线是否正确 B、检查仪表电容是否熔断&#xff1b; C、拧下仪表后的固定螺钉&#xff0c;将表…

王道数据结构课后代码题p40 4.在带头结点的单链表L中删除一个最小值结点的高效算法(假设最小值唯一) (c语言代码实现)

本题代码为 void deletemin(linklist* L)//找到最小值并删除 {lnode* p (*L)->next, * pre *L;lnode* s p,*sprepre;while (p ! NULL)//找到最小值{if (p->data < s->data){s p;spre pre;}p p->next;pre pre->next;}p s->next;spre->next p;…

有IP没有域名可以申请证书吗?

一、IP证书是什么&#xff1f; ip证书是用于公网ip地址的SSL证书&#xff0c;与我们通常所讲的SSL证书并无本质上的区别&#xff0c;但由于SSL证书通常颁发给域名&#xff0c;而组织机构需要公共ip地址的SSL证书&#xff0c;这类SSL证书就是我们所说的ip证书。ip证书具有安全、…

仅仅通过提示词,GPT-4可以被引导成为多个领域的特定专家

The Power of Prompting&#xff1a;提示的力量&#xff0c;仅通过提示&#xff0c;GPT-4可以被引导成为多个领域的特定专家。微软研究院发布了一项研究&#xff0c;展示了在仅使用提策略的情况下让GPT 4在医学基准测试中表现得像一个专家。研究显示&#xff0c;GPT-4在相同的基…

上海毅速丨新材料将推动3D打印在压铸行业的应用

压铸是一种应用广泛的制造工艺&#xff0c;它的制造原理是将液态或半液态金属&#xff0c;在高压作用下&#xff0c;以高速度填充压铸模具型腔&#xff0c;并在压力下快速凝固而获得铸件的一种方法。压铸模的设计和制造需要考虑到多方面的因素&#xff0c;如模具材料、结构、冷…

设计模式详解(二):抽象工厂——Abstract Factory

目录导航 抽象工厂及其作用工厂方法的好处工厂方法的实现关系图实现步骤 工厂方法的适用场景工厂方法举例 抽象工厂及其作用 工厂方法是一种创建型设计模式。所谓创建型设计模式是说针对创建对象方面的设计模式。在面向对象的编程语言里&#xff0c;我们通过对象间的相互协作&…