类和对象-封装-封装设计案例2(立方体类)

简介: 类和对象-封装-封装设计
#include <iostream>
using namespace std;
//设计立方体类
//要求:1.求出立方体的面积和体积
//    2.分别用全局函数和成员函数判断两个立方体是否相等 
//立方体类 
class Cube{
private:
  float clong;//成员变量:长 
  float cwide;//宽 
  float chigh;//高 
public:
  void setclong(float l)//设置长 
  {
    clong=l;
  }
  void setcwide(float w)//设置宽 
  {
    cwide=w;  
  }
  void setchigh(float h)//设置高 
  {
    chigh=h;  
  }
  float getclong()//获取长 
  {
    return clong;
  }
  float getcwide()//获取宽 
  {
    return cwide;
  }
  float getchigh()//获取高 
  {
    return chigh;
  }
  float area()//求立方体面积 
  {
    return 2*(clong*cwide+clong*chigh+cwide*chigh);//返回面积值 
  } 
  float volume() //求立方体体积 
  {
    return clong*cwide*chigh;//返回体积值 
  }
  bool is_same(Cube &c) //成员函数判断两个立方体是否相等 
              //成员函数中本身就有一个立方体,所以只要再传一个立方体 
  {
    if(clong==c.getclong()&&cwide==c.getcwide()&&chigh==c.getchigh()) 
    {
      return true;
    }
    else
    {
      return false;
    }
  }
};
//全局函数判断两个立方体是否相等
bool is_equal(Cube &c1,Cube &c2)
{
  if(c1.getclong()==c2.getclong()&&c1.getcwide()==c2.getcwide()&&c1.getchigh()==c2.getchigh())
  {
    return true;
  }
  else
  {
    return false;
  }
} 
int main(int argc, char** argv) {
  Cube c1;//建立立方体1 
  c1.setclong(1);
  c1.setcwide(2);
  c1.setchigh(3); 
  cout<<"立方体1的面积为:"<<c1.area()<<endl;
  cout<<"立方体2的面积为:"<<c1.volume()<<endl;
  Cube c2;//建立立方体2 
  c2.setclong(2);
  c2.setcwide(3);
  c2.setchigh(4);
  if(is_equal(c1,c2))//利用全局函数判断两个立方体是否相等 
  {
    cout<<"两个立方体相等"<<endl; 
  }
  else
  {
    cout<<"两个立方体不相等"<<endl;
  }
  if(c1.is_same(c2))//利用成员函数判断两个立方体是否相等 
  {
    cout<<"两个立方体相等"<<endl;  
  } 
  else
  {
    cout<<"两个立方体不相等"<<endl;
  }
  return 0;
}
目录
相关文章
|
C语言
数据结构之栈详解(C语言手撕)
数据结构之栈详解(C语言手撕)
470 1
|
搜索推荐 数据库 C语言
C语言实现冒泡排序(超详细)
C语言实现冒泡排序(超详细)
683 1
|
10月前
|
运维 负载均衡 监控
部署硬件负载均衡和软件负载均衡时,分别需要考虑哪些因素?
部署硬件负载均衡和软件负载均衡时,分别需要考虑哪些因素?
423 127
|
分布式计算 监控 大数据
如何优化Spark中的shuffle操作?
【10月更文挑战第18天】
|
JavaScript 前端开发 数据安全/隐私保护
如何使用request-promise在发送请求时使用代理?
以上方法演示了如何在发送请求时使用 `request-promise`结合代理服务,适用于需要通过代理访问网络资源的场景。
243 0
|
网络协议
计算机网络四种帧介绍,广播帧、未知帧、同网帧、异网帧
计算机网络四种帧介绍,广播帧、未知帧、同网帧、异网帧
|
存储 Java API
Mac安装jadx并配置环境
Mac安装jadx并配置环境
1644 0
|
存储 运维 网络协议
Linux巩固篇017-Linux iSCSI 服务部署网络存储
纸上得来终觉浅,绝知此事要躬行
761 1
Linux巩固篇017-Linux iSCSI 服务部署网络存储
|
NoSQL 安全 Redis
解决秒杀系统库存超卖问题:乐观锁与Redis分布式锁的应用
解决秒杀系统库存超卖问题:乐观锁与Redis分布式锁的应用
3028 0
|
算法 Oracle 关系型数据库
【分布式】分布式事务基础概念(2PC,3PC,TCC)
【分布式】分布式事务基础概念(2PC,3PC,TCC)
1627 1