news 2026/9/3 3:49:08

06. C++类

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
06. C++类

1.C++类简介

2.C++类示例


1.C++类简介

C++类的本质是将"数据(属性)""操作的方法(函数)"封装成一个整体 a.访问修饰符-private:私有成员(默认),仅类内部可访问,用于封装核心数据,避免外部随意修改-public:公有成员,类外部可访问,用于提供对外操作接口(drive()setSpeed())-protected:保护成员,仅类内部和子类可访问(继承时用)b.构造/析构函数-构造函数:对象"出生"时初始化数据,无返回值、名字和类名一致-析构函数:对象"死亡"时清理资源(如动态内存),格式为"~类名()",无参数、无返回值

2.C++类示例

#include <iostream>#include <string>usingnamespacestd;// 1. 定义类:class关键字 + 类名(首字母通常大写)classCar{// 2. 访问修饰符:控制成员的访问权限(核心)private:// 私有成员:仅类内部可访问(封装的核心,保护数据)stringbrand;// 成员变量(属性):汽车品牌intspeed;// 成员变量(属性):行驶速度public:// 公有成员:类外部可访问(提供对外接口)// 3. 构造函数:创建对象时自动调用,用于初始化成员变量// 特点:与类名相同、无返回值、可重载Car(stringb,ints):brand(b),speed(s){// 初始化列表(更高效的写法)cout<<"构造函数调用:"<<brand<<"已创建"<<endl;}// 4. 析构函数:对象销毁时自动调用,用于释放资源(如内存、文件句柄)// 特点:~+类名、无返回值、无参数、仅一个~Car(){cout<<"析构函数调用:"<<brand<<"已销毁"<<endl;}// 5. 成员函数(方法):操作成员变量的函数// 行为1:行驶voiddrive(){cout<<brand<<"正在以"<<speed<<"km/h行驶"<<endl;}// 行为2:修改速度(封装体现:通过接口控制私有属性的修改规则)voidsetSpeed(intnewSpeed){// 合法性检查:避免设置不合理的速度if(newSpeed>=0&&newSpeed<=200){speed=newSpeed;}else{cout<<"错误:速度必须在0-200之间!"<<endl;}}// 行为3:获取当前速度(封装体现:对外暴露只读接口)intgetSpeed(){returnspeed;}};// 2. 使用类(实例化对象)intmain(){// 创建对象(实例化类):自动调用构造函数CarmyCar("特斯拉",80);// 调用公有成员函数(访问类的行为)myCar.drive();// 输出:特斯拉正在以80km/h行驶// 修改私有属性(必须通过公有方法)myCar.setSpeed(120);myCar.drive();// 输出:特斯拉正在以120km/h行驶// 尝试设置非法速度(触发合法性检查)myCar.setSpeed(250);// 输出:错误:速度必须在0-200之间!// 获取私有属性(通过公有方法)cout<<"当前速度:"<<myCar.getSpeed()<<endl;// 输出:当前速度:120// 程序结束时,对象销毁,自动调用析构函数return0;}

C++,结构体和类在本质上几乎是等价的(唯一核心区别是默认访问权限),它们的实例(对象)存在哪里,只看你怎么创建:a.栈上创建:直接定义变量(自动存储,函数/代码块结束后自动释放)b.堆上创建:new关键字动态分配(手动分配,需delete释放,否则内存泄漏)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 21:35:46

计算机Java毕设实战-基于springboot的元宇宙平台上的消费扶贫专柜管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/9/3 2:11:09

基于STM32的健康监测系统设计与实现

基于STM32的健康监测系统设计与实现 摘要 随着人口老龄化进程的加速&#xff0c;老年人健康监测需求日益增长。传统健康监测方式存在监测频率低、数据不准确、响应滞后等问题&#xff0c;难以及时发现健康风险。本文设计并实现了一种基于STM32F103C8T6微控制器的健康监测系统…

作者头像 李华
网站建设 2026/9/2 22:22:30

【计算机毕业设计案例】基于vue+springboot的隧道云视频监控管理信息平台设计与实现(程序+文档+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/9/2 23:54:29

【Linux运维大神系列】Kubernetes详解6(k8s技术笔记2)

目录 Service四层负载均衡 Service介绍 Service代理规则-iptables Serviceipvs代理规则-ipvs Service常用访问方式介绍 Cluster IP应用案例 NodePort应用案例 Ingress七层负载均衡 Ingress控制器介绍 Ingress HTTP应用案例 Ingress HTTPS应用案例 Service四层负载均…

作者头像 李华
网站建设 2026/9/2 22:23:45

RabbitMQ 在大数据领域的故障排查与解决方案

RabbitMQ 在大数据领域的故障排查与解决方案 关键词:RabbitMQ、大数据、消息队列、故障排查、性能优化、高可用性、消息丢失 摘要:本文深入探讨RabbitMQ在大数据环境下的常见故障及其解决方案。我们将从RabbitMQ的核心架构出发,分析其在大数据场景下面临的挑战,详细介绍故障…

作者头像 李华
网站建设 2026/9/3 0:47:14

VMware vSphere 9.0.2.0 发布 - 企业级工作负载平台

VMware vSphere 9.0.2.0 发布 - 企业级工作负载平台 ESXi 9.0 & vCenter Server 9.0 | vSphere 9.0 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-vsphere-9/ 查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sysin.org 企业工作负…

作者头像 李华