news 2026/4/3 4:20:25

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/4/1 13:22:45

同一篇论文,知网5%,维普30%,为什么

维普AIGC检测高&#xff1f;6款工具帮你降到合格线 TL;DR&#xff1a;维普AIGC检测算法和知网不同&#xff0c;很多知网能过的工具在维普可能过不了。实测对维普效果最好的是嘎嘎降AI&#xff08;67%→9%&#xff09;&#xff0c;其次是比话降AI&#xff08;60%→12%&#xff0…

作者头像 李华
网站建设 2026/3/25 15:21:52

异构环境下分布式深度学习数据并行技术

✅ 博主简介&#xff1a;擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导&#xff0c;毕业论文、期刊论文经验交流。 ✅成品或者定制&#xff0c;扫描文章底部微信二维码。 (1) 异构集群环境特征分析与训练任务智能分配机制 随着深度学习模型规模的不断扩大…

作者头像 李华
网站建设 2026/4/1 4:11:33

[Unreal shader]深度缓冲重建世界坐标

UE中通过深度缓冲重建世界空间坐标原理和Unity shader重建原理基本一致&#xff0c;但是UE中重建世界坐标的实现路径与Unity是不一致的 &#xff1a;• Unity中使用 SAMPLE_DEPTH_TEXTUR 采样的是原始深度值&#xff08;RawDepth&#xff09;&#xff0c;是一个范围[0&#xff…

作者头像 李华
网站建设 2026/3/31 0:24:30

Flow-Planner疑问汇总

一、Flow-Planner中ODE求解器使用的Midpoint和两倍步数的Euler法有啥区别&#xff1f; #位置在torchdiffeq/torchdiffeq/_impl/fixed_grid.py class Euler(FixedGridODESolver):order 1def _step_func(self, func, t0, dt, t1, y0):f0 func(t0, y0, perturbPerturb.NEXT if s…

作者头像 李华
网站建设 2026/4/1 8:11:11

维普降AI全攻略:工具选择 + 使用策略一网打尽

维普AIGC检测高&#xff1f;6款工具帮你降到合格线 TL;DR&#xff1a;维普AIGC检测算法和知网不同&#xff0c;很多知网能过的工具在维普可能过不了。实测对维普效果最好的是嘎嘎降AI&#xff08;67%→9%&#xff09;&#xff0c;其次是比话降AI&#xff08;60%→12%&#xff0…

作者头像 李华
网站建设 2026/3/28 10:25:05

微服务架构演进实战 从单体到微服务的拆分原则与DDD入门

目录 &#x1f4a1; 先说说我经历的微服务"车祸现场" ✨ 摘要 1. 为什么需要从单体转向微服务&#xff1f; 1.1 单体的痛苦现实 1.2 微服务的核心优势 2. 领域驱动设计&#xff08;DDD&#xff09;核心概念 2.1 战略设计&#xff1a;划分业务边界 2.2 战术设…

作者头像 李华