当前位置: 首页 > news >正文

【C++笔记】类与对象(初识)

主要包含两部分:①属性 (成员变量):描述它 “是什么” (例如:名字、年龄)。②行为 (成员函数):描述它 “能做什么” (例如:说话、跑步)。

代码语言:javascript

AI代码解释

class 类名 { // 成员函数 void DoSomething(); // 成员变量 int variable; }; // <--- 注意:这里必须有一个分号!

代码示例:定义一个Student(学生)类:

代码语言:javascript

AI代码解释

#include <iostream> #include <string> using namespace std; class Student { // 成员函数(行为) void SetInfo(string n, int a) { _name = n; _age = a; } void Study() { cout << _name << " 正在学习,虽然他已经 " << _age << " 岁了。" << endl; } // 成员变量(属性) string _name; int _age; };

温馨提示:为了区分成员变量,⼀般习惯上成员变量会加⼀个特殊标识,如成员变量前⾯或者后⾯加_ 或者 m 开头,注意C++中这个并不是强制的,只是⼀些惯例。

1.2 访问限定符

在 C++ 中,访问限定符是实现封装的关键工具,它们决定了类中的成员(变量和函数)在什么地方可以被访问,什么地方被禁止访问。

访问权限作⽤域从该访问限定符出现的位置开始直到下⼀个访问限定符出现时为⽌,如果后⾯没有访问限定符,作⽤域就到类结束为止。

1.2.1 public (公有)

权限:public修饰的成员在类外可以直接被访问,可以形象的理解为:家门口的告示牌,谁路过都能看。

用途:通常用于成员函数(接口),供外部调用。

代码示例:在学生类中通过使用public,此时类中的所有成员可以直接被访问

代码语言:javascript

AI代码解释

#include <iostream> #include <string> using namespace std; class Student { public: // 成员函数(行为) void SetInfo(string n, int a) { _name = n; _age = a; } void Study() { cout << _name << " 正在学习,虽然他已经 " << _age << " 岁了。" << endl; } // 成员变量(属性) string _name; int _age; };
1.2.2 private (私有)

权限:private修饰的成员在类外不能直接被访问,可以形象的理解为:你的日记本,只有你自己(类内部)能看,连孩子(子类)都不能看。

用途:通常用于成员变量,防止外部随意修改数据(数据隐藏)。代码示例:在学生类中,对成员函数使用public,对成员变量使用private

http://www.jsqmd.com/news/484080/

相关文章:

  • 鸿蒙开发进阶之路:从 ArkTS 到分布式应用实践
  • Micropython BLE实战:3步搞定ESP32与手机蓝牙通信(附完整代码)
  • 钓鱼即服务产业化演进与企业防御体系重构研究
  • 用R语言进行土壤侵蚀数据分析
  • 用MATLAB boxplot函数做科研数据分析:箱线图实战案例解析
  • 中兴交换机配置加固方法
  • 【C++】string类--常见接口及其模拟实现
  • 最新!2026年OpenClaw(Clawdbot)云端5分钟集成及使用方法
  • 发光二极管(LED)介绍
  • 解决Notepad++绿色版右键菜单失效的3种方法(注册表+bat+权限问题排查)
  • 探索基于出行链的电动汽车负荷预测模型
  • 2026年热销榜单:十大动环监控系统推荐,让你的机房管理更高效
  • 【MySql】navicat连接报2013错误
  • 低查重不是梦!AI教材写作工具,助力快速且高质量完成教材编写!
  • Go 语言实现 Function Calling 服务端:从协议解析到工具执行
  • 【FFmpeg】H.264 格式分析 ② ( 网络抽象层单元 NALU NALU 功能结构 VCL 视频编码层 NAL 网络提取层 H.264 封装模式 - annexb 模式 )
  • C++ 模板编程的实战应用
  • HCIP-AI-EI Developer V2.5 第二章笔记
  • 剪映专业版教程:制作扇形开合效果
  • JavaScript性能优化实战宗弊
  • 【Flask】四、flask连接并操作数据库
  • crontab 定时任务从入门到上线(语法 + 排障)
  • 基于RRT的路径规划算法在多种移动设备上的实现
  • 探索MATLAB中多个无人船协同围捕控制算法
  • 探索 BP 神经网络 PID 控制在 Simulink 中的仿真之旅
  • JavaScript性能优化实战烂文
  • 贾子认知理论与全球主流AI大模型十四项核心弊端:诊断与根治方案
  • Linux 安装 MySQL 与远程连接排障(yum 方案)
  • Scholar-Agent:你的全自动文献调研工具
  • VF控制的仿真与代码生成