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

在示例代码中添加设置和获取矩形宽度和高度的成员函数

我们可以在之前的矩形类中添加专门设置和获取宽度、高度的成员函数(getter 和 setter),让对私有成员的访问更灵活且安全。以下是修改后的完整代码:
cpp
 
运行
#include <iostream>
using namespace std;// 定义矩形类
class Rectangle {
private:// 私有成员变量(封装:外部无法直接访问)double width;double height;public:// 构造函数(初始化对象)Rectangle(double w = 0, double h = 0) : width(w), height(h) {cout << "矩形对象已创建!" << endl;}// 析构函数(对象销毁时调用)~Rectangle() {cout << "矩形对象已销毁!" << endl;}// 成员函数:计算面积double getArea() {return width * height;}// 成员函数:计算周长double getPerimeter() {return 2 * (width + height);}// ---------- 添加的 getter 和 setter 函数 ----------// 获取宽度double getWidth() const { // const 表示该函数不修改对象成员return width;}// 设置宽度(带合法性检查)void setWidth(double w) {if (w >= 0) {width = w;} else {cout << "宽度不能为负数!" << endl;}}// 获取高度double getHeight() const {return height;}// 设置高度(带合法性检查)void setHeight(double h) {if (h >= 0) {height = h;} else {cout << "高度不能为负数!" << endl;}}// ---------------------------------------------------// 成员函数:显示信息void showInfo() {cout << "矩形宽:" << width << ", 高:" << height << endl;cout << "面积:" << getArea() << ", 周长:" << getPerimeter() << endl;}
};int main() {// 创建矩形对象Rectangle rect(3.5, 2.0);rect.showInfo();// 使用 getter 获取宽度和高度cout << "\n当前宽度:" << rect.getWidth() << endl;cout << "当前高度:" << rect.getHeight() << endl;// 使用 setter 修改宽度和高度rect.setWidth(5.0);rect.setHeight(4.0);cout << "\n修改后:" << endl;rect.showInfo();// 尝试设置负数(触发合法性检查)cout << "\n尝试设置负数宽度:" << endl;rect.setWidth(-2.0);cout << "尝试设置负数高度:" << endl;rect.setHeight(-3.0);return 0;
}
 

关键修改说明

  1. getter 函数
    • getWidth() const 和 getHeight() const:用于获取私有成员 width 和 height 的值。
    • const 关键字表示这些函数不会修改对象的任何成员变量,保证代码的安全性和可读性。
  2. setter 函数
    • setWidth(double w) 和 setHeight(double h):用于设置私有成员的值,且包含合法性检查(不允许设置负数),避免非法数据。

运行结果

plaintext
矩形对象已创建!
矩形宽:3.5, 高:2
面积:7, 周长:11当前宽度:3.5
当前高度:2修改后:
矩形宽:5, 高:4
面积:20, 周长:18尝试设置负数宽度:
宽度不能为负数!
尝试设置负数高度:
高度不能为负数!
矩形对象已销毁!
 
通过 getter 和 setter,我们可以更精细地控制对私有成员的访问,既保证了封装性,又增加了代码的健壮性(比如防止设置非法的宽高值)。
http://www.gsyq.cn/news/68837.html

相关文章:

  • 在AdvancedInstaller中通过版本号检查软件部署环境
  • 2025年河南图文矩阵推广服务商权威推荐榜单:河南矩阵推广公司/河南矩阵推广方案/河南矩阵推广引流渠道精选
  • 【*矩阵运算】你不得不会的线性代数/点乘和矩阵乘法的区别/如何加速运算和不保留中间结果(防止爆内存MLE)
  • 纺织脉搏,气动赋能:精选高效空压机品牌助力产业升级
  • 2025预糊化淀粉厂家TOP5公平推荐:各有专攻的优质供应商,按需选择更适配
  • 2025年12月货架/钢平台厂家权威推荐TOP10:以实力甄选,为效率赋能
  • 2025年12月角接触球轴承厂家推荐 应用场景涵盖数控机床主轴轴承、机器人轴承、电机轴承
  • 2025年12月货架/钢平台等设备厂家权威推荐TOP10,选对厂家省成本超30%
  • 智选空压动力:深度解析国内空压机实力品牌与行业应用方案
  • 2025 年12月挤出机行业优选5优质厂家推荐:比较好的双螺杆挤出机/挤出机设备/单螺杆挤出机/螺杆挤出机/双螺杆颗粒挤出机/平行双螺杆挤出机/三螺杆挤出机/pp双螺杆挤出机/塑胶双螺杆挤出机厂家
  • 2025年柜体发光板批发厂家权威推荐榜单:发光木板‌/圆形发光板‌/发光置物架‌源头厂家精选
  • 2025 年蜗轮丝杆升降机厂家厂家最新推荐排行榜:聚焦八大实力企业,解析产品性能与服务优势JWM /按图定制/不锈钢/电动/多台联动蜗轮丝杆升降机公司推荐
  • 2025 年 12 月国内管理咨询公司TOP10榜单:洞悉行业趋势,引领企业变革的智慧之选!
  • 消费者组重平衡与消息顺序性保证:原理、操作与实践
  • 2025年12月升降平台、全自行式升降机优质品牌最新推荐+安全平稳性指南
  • 2025年惠州围挡护栏认证厂家推荐:围挡护栏源头厂家哪家靠谱
  • 2025年12月升降平台厂家推荐:全自行式升降机、登车桥、装卸平台、导轨货梯精选
  • 2025 年 12 月战略管理咨询公司权威推荐榜:洞悉商业趋势,助力企业腾飞的智慧之选!
  • 正规股票配资平台哪些实盘配资平台靠谱
  • 2025年口碑好的围挡护栏厂家推荐:鑫森建设产品质量好
  • 公众号排版用什么软件?3款主流工具推荐与实操指南
  • Antigravity 删除 D盘问题分析
  • 2026年煤质分析仪器厂家新推荐排行,煤质分析仪器信誉好/售后好/服务好/技术好
  • 2025 年 12 月全过程咨询公司权威推荐榜:一站式服务,专业高效解决方案提供商!
  • 保研规划排行榜2025:综合实力排名Top10机构盘点
  • mapper foreach 多字段更新
  • 2025 年 12 月制氮机厂家推荐榜单,PSA制氮机装置,模组制氮机,氨气净化干燥装置,高效稳定品牌精选!
  • 文本到图像、涂鸦转换、人像风格重塑
  • 2025数据安全管理平台Top榜:自定义合规治理AI优化能力评测
  • APP界面设计公司分享;社交金融APP情感化设计打破行业刻板印象