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

建立普通的基类Building,用来存储一座楼房的层数、房间数以及它的总平方米数。建立派生类House,继承Building,并存储下面的内容:卧室与浴室的数量。另外,建立派生类Office,继承Bu

class Builing { private: int cengshu;//层数 int fangjianshu;//房间数 double total_area;//总平方米 public: //构造函数 Builing(int ceng = 0, int fangjian = 0, double area =0.0) :cengshu(ceng), fangjianshu(fangjian), total_area(area) { //检验合法性 if (cengshu < 0) { cengshu = 0; } if (fangjianshu < 0) { fangjianshu = 0; } if (total_area < 0) { total_area = 0; } } //获得属性 int getcengshu()const { return cengshu; } int getfangjianshu()const { return fangjianshu; } double gettotal_area()const { return total_area; } //设置属性 int setcengshu(int ceng) { if (cengshu >= 0) { cengshu = ceng; } } int setfangjianshu(int fangjian) { if (fangjianshu >=0 ) { fangjianshu = fangjian; } } int settotal_area(double area) { if (total_area >=0) { total_area = area; } } //显示信息 virtual void show()const { cout << "楼房信息 " << endl; cout << "层数" << cengshu << endl; cout << "房间数量" << fangjianshu << endl; cout << "总平方米" << total_area << "平方米" << endl; } }; class House :public Builing { private: int bedroom_count;//卧室数量 int bathroom_count;//浴室数量 public: //构造函数 House(int ceng = 0, int fangjian = 0, double area = 0.0, int bedroom = 0, int bathroom = 0) : Builing(ceng, fangjian, area), bedroom_count(bedroom), bathroom_count(bathroom) { //检验合理性 if (bedroom_count < 0) { bedroom_count = 0; } if (bathroom_count < 0) { bathroom_count = 0; } } //显示信息 void show()const { //因为show是虚函数 Builing::show(); cout << "住宅信息" << endl; cout << "卧室数量" << bedroom_count << endl; cout << "浴室数量" << bathroom_count << endl; } }; class Office :public Builing { private: int fire_extinguisher;//灭火器数量 int phone_count;//电话数量 public: Office(int ceng = 0, int fangjian = 0, double area = 0.0, int fire = 0, int phone = 0) : Builing(ceng, fangjian, area), fire_extinguisher(fire), phone_count(phone) { if (fire_extinguisher < 0) { fire_extinguisher = 0; } if (phone_count < 0) { phone_count = 0; } } //显示信息 void show()const { Builing::show(); cout << "办公室信息" << endl; cout << "灭火器数量" << fire_extinguisher << endl; cout << "电话数量" << phone_count << endl; } }; int main() { Builing* b1 = nullptr, * b2 = nullptr; House house(3, 8, 120, 2, 4); b1 = &house; Office office(3, 8, 120, 8, 4); b2 = &office; b1->show(); cout << endl; b2->show(); return 0; }
http://www.jsqmd.com/news/347173/

相关文章:

  • 【信息矩阵融合算法】【融合】【Dempster-Shafer】自动驾驶应用中环境感知的目标级融合研究附Matlab代码
  • 【通信】基于DPCM编码及2DPSK调制数字频带通信系统Matlab仿真
  • LLVM的混淆之旅(五)-控制流平坦化混淆
  • 2026-02-05学习
  • 数字图像处理篇---颜色空间
  • 【信号调制】使用不同的分类器(逻辑回归分类器、决策树、随机森林、全连接密集层和CNN)来训练模型,以预测不同信噪比值下信号的调制类型附Python代码
  • 数字图像处理篇---颜色空间的发展历程
  • 软件时代正在终结?2026,一场静默的AI革命正重塑我们的工作与未来
  • 数字图像处理篇---图像高通滤波
  • Redmi AX6 TTL 救砖记录
  • 数字图像处理篇---图像合成
  • 深度学习篇---Diffusion模型
  • 数字图像处理篇---小波变换
  • WSL2 + Aider(Kimi) + Windows Trae 双擎开发环境实施文档
  • 数字图像处理篇---图像低通滤波
  • 数字图像处理篇---图像离散余弦变换
  • 市场风险的防范策略
  • Excel向下舍入利器ROUNDDOWN函数:精准截断与季度计算的优雅解决方案
  • 豆包能投广告吗?如何做豆包推广?一文讲透豆包营销新路径 - 品牌2025
  • SW草图绘制之圆弧绘制
  • Matplotlib 绘制多图
  • 寒假12
  • ArcGIS Python零基础脚本开发教程---11.4 Array类
  • C 环境设置
  • Vue3 混入:深入理解组件间的数据共享与复用
  • ArcGIS Python零基础脚本开发教程---11.3 Field类
  • 如何做 DeepSeek 推广?AI时代To B企业的增长新引擎 - 品牌2025
  • 提示工程学习型组织知识管理工具:架构师的10个推荐
  • 留学党必看!这些APP让你的留学之路开挂 - 品牌测评鉴赏家
  • Cassandra 性能优化:10 个技巧让你的查询速度翻倍