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

C++ 封装特性

1. 属性和行为作为一个整体

属性:类的成员变量,描述对象的状态(如长、宽、高)。
行为:类的成员函数,描述对象的操作(如计算体积、表面积)。
通过类将属性和行为封装在一起,形成一个完整的对象。

2. 访问权限

C++类成员有三种访问权限:

关键字说明
public公有成员,类外可访问
protected受保护成员,派生类可访问
private私有成员,仅类内可访问

3. class和struct的区别

• class默认成员访问权限为private
• struct默认成员访问权限为public
• 其他用法基本一致。

4. 将成员属性设置为私有

• 推荐将属性(成员变量)设为private,通过public成员函数(如getter/setter)访问和修改,保证数据安全和封装性。

5. 立方体类设计示例

#include <iostream>class Cube {
private:double length; // 私有属性double width;double height;public:// 构造函数Cube(double l, double w, double h) : length(l), width(w), height(h) {}// 设置属性的公有方法(setter)void setLength(double l) { length = l; }void setWidth(double w) { width = w; }void setHeight(double h) { height = h; }// 获取属性的公有方法(getter)double getLength() const { return length; }double getWidth() const { return width; }double getHeight() const { return height; }// 行为:计算体积double volume() const {return length * width * height;}// 行为:计算表面积double surfaceArea() const {return 2 * (length * width + length * height + width * height);}
};int main() {Cube c(3, 4, 5);std::cout << "体积: " << c.volume() << std::endl;std::cout << "表面积: " << c.surfaceArea() << std::endl;// 通过公有方法访问和修改属性c.setLength(6);std::cout << "新体积: " << c.volume() << std::endl;// 不能直接访问私有属性,下面语句会编译错误// c.length = 10;return 0;
}

总结

• 封装将属性和行为组合为一个整体,保护数据安全。
• 通过访问权限控制成员的可见性。
• 推荐用class并将属性私有,行为公有。
• 通过getter/setter访问和修改私有属性,体现封装思想。

相关文章:

  • Python 爬虫入门 Day 6 - 反爬虫应对策略 Headers / Cookies 模拟请求
  • Python词频统计工具全解析
  • FPGA基础 -- Verilog 表达式
  • 麒麟系统安装达梦数据库
  • 【git】git的基础使用一
  • C++---类和对象(中)
  • JSON与XML怎么选?什么情况下会用到 JSON?
  • 408第二季 - 组成原理 - 标志器和加法器
  • ES磁盘使用超限问题:TOO_MANY_REQUESTS disk usage exceeded flood-stage watermark,
  • 【Docker安装PostgreSQL】psql:致命错误: 用户 Password 认证失败
  • Android中Glide.with().load().into() 应付面试源码解析
  • C语言中errno错误码定义及使用
  • 绿色建筑发展新动能:楼宇自控助力实现高效节能减排
  • 2025年- H82-Lc190--322.零钱兑换(动态规划)--Java版
  • 【系统设计【4】】设计一个限流器:从理论到实践的完整解决方案
  • 【FreeRTOS实战】一章速通freertos含扩展MQTT,SD卡,
  • Java + Spring Boot + MyBatis 枚举变量传递给XML映射文件做判断
  • 6.17 note
  • 【AI News | 20250617】每日AI进展
  • JDBC强化关键_009_连接池
  • 阿里巴巴网站费用怎么做分录/宁德市区哪里好玩
  • 长春做网站电话/关键词优化公司哪家强
  • 云虚拟主机怎么做2个网站/百度网站制作联系方式
  • 北京做网站好的公司/夜夜草
  • 目前做网站的公司有哪些/西安百度推广开户
  • 郑州网站建设推销/百度seo网站优化