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

1.什么是类?

1.类的定义

类(Class)是一种用户自定义的复合数据类型,它将数据(成员变量 / 属性)操作这些数据的函数(成员函数 / 方法)封装在一个逻辑单元中;类定义了一个抽象数据类型(ADT)的接口和实现,是创建对象(实例)的模板,通过访问控制(public/private/protected)实现封装,支持继承和多态,是面向对象编程(OOP)的核心基础。

2.创建一个类

// 1. 定义一个最简单的类 class SimpleClient { // 访问权限:public 表示外部可以直接调用下面的成员 public: // 构造函数(和类名相同,用于初始化对象) SimpleClient() : m_name("默认名称"), m_age(0) { std::cout << "SimpleClient 对象创建了!" << std::endl; } // 成员函数:设置名称 void setName(const std::string& name) { m_name = name; } // 成员函数:获取名称 std::string getName() { return m_name; } // 成员函数:打印信息(简单的功能演示) void printInfo() { std::cout << "名称:" << m_name << ",年龄:" << m_age << std::endl; } // 私有成员:只能在类内部访问,外部不能直接修改(封装的核心) private: // 成员变量(m_ 前缀是规范,代表“成员变量”) std::string m_name; // 存储名称 int m_age; // 存储年龄 };

3.类的实例化

1.栈中实例化

// 主函数:程序入口,用于测试这个类 int main() { // 2. 创建类的对象(实例化) SimpleClient client; // 3. 调用类的成员函数 client.setName("我的第一个类"); // 设置名称 client.printInfo(); // 打印信息 // 4. 获取并打印名称 std::cout << "获取到的名称:" << client.getName() << std::endl; return 0; }

2.堆中实例化

int main() { // ========== 1. 堆中实例化(无参构造) ========== // new 关键字:在堆上创建对象,返回指向该对象的指针 SimpleClient* client1 = new SimpleClient(); // 堆对象调用成员函数:用 -> (栈对象用 . ) client1->setName("堆对象1"); client1->printInfo(); // ========== 2. 堆中实例化(带参构造) ========== SimpleClient* client2 = new SimpleClient("堆对象2", 18); client2->printInfo(); // ========== 3. 手动销毁堆对象(必须!) ========== // delete 关键字:释放堆内存,调用析构函数 delete client1; delete client2; // 注意:销毁后指针变为“野指针”,建议置空 client1 = nullptr; client2 = nullptr; return 0; }
http://www.cnnetsun.cn/news/137403.html

相关文章:

  • BurpSuite渗透测试通关手册,简单几步带你从环境配置到报告生成
  • Python | OpenCV | 图像处理 | 入门实验 | 对比度增强 | 裁剪
  • Apifox:API 接口自动化测试完全指南
  • 正反向代理:网络安全核心技术
  • 别被忽悠了!一文讲透MES管理系统本地部署与SaaS模式的真正底牌
  • 【毕业设计】基于springboot+微信小程序的羽球快讯爱好者平台小程序(源码+文档+远程调试,全bao定制等)
  • 小程序计算机毕设之基于SpringBoot的宠物领养微信小程序基于springboot+微信小程序的宠物领养系统小程序(完整前后端代码+说明文档+LW,调试定制等)
  • 小程序计算机毕设之基于springboot+微信小程序的大学生餐厅点餐系统小程序基于springboot微信小程序的校园食堂订餐服务系统(完整前后端代码+说明文档+LW,调试定制等)
  • 计算机小程序毕设实战-基于springboot+微信小程序的影院售票系统设计与实现基于SpringBoot的电影购票平台微信小程序【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 计算机小程序毕设实战-基于springboot+微信小程序的羽球快讯爱好者平台小程序羽毛球场预定app_羽毛球预约管家【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 11、文本与盒子属性的CSS技巧解析
  • 23、WinJS控件样式与样式规则定位指南
  • 27、Windows 8 应用开发中的 SVG 样式设计
  • SAP ABAP拆分交货单数量、批次、存储地点 并过账
  • 基于MPC的智能车运动预测和控制算法 Motion predication; Kinemati...
  • Mathcad的野路子】11kW PFC参数计算书实战拆解
  • STM32学习笔记CAN
  • 搭建你的第一个“私有知识库” (RAG)
  • 13、Unix 系统磁盘管理与安全定位脚本实用指南
  • 15、系统管理脚本实用指南
  • 怎么选一款适合大面积清洁的多功能全自动洗地机呢?
  • 使用matlab编写m脚本,编写无迹卡尔曼滤波算法(UKF)估计电池SOC,注释清晰
  • 教培行业新媒体运营困境凸显!这款软件或成转型制胜法宝?
  • Photoshop Neural Filters:把“引擎截图”秒变“电影级美宣”?AI 深度模糊与色彩迁移工作流
  • 基于matlab的多目标优化算法NSGA3,动态输出优化过程,得到最终的多目标优化结果。 数据...
  • 12.18
  • COCO 数据集
  • 国内好用的测试用例管理工具有哪些?
  • 24、COM+ 事务管理与补偿资源管理器详解
  • YOLO深度学习模型的训练参数配置与优化