19-类和对象-封装-立方体类

简介: 19-类和对象-封装-立方体类
#include<bits/stdc++.h>
using namespace std;
class Cube
{
public:
  //行为,获取立方体
  //设置长
  void setL(int l)
  {
    m_L = l;
  }
  //获取长
  int  getL()
  {
    return m_L;
  }
  //设置宽
  void setW(int w)
  {
    m_W = w;
  }
  //获取宽
  int  getW()
  {
    return m_W;
  }
  //设置高
  void setH(int h)
  {
    m_H = h;
  }
  //获取高
  int  getH()
  {
    return m_H;
  }
  //获取立方体面积
  int calculateS()
  {
    return 2 * m_L*m_W + 2 * m_W*m_H + 2 * m_H*m_L;
  }
  //获取立方体体积
  int calculateV()
  {
    return m_L * m_W * m_H;
  }
  //利用成员函数判断两个立方体是否相等
  bool isSameByClass(Cube &c)
  {
    if (m_L == c.getL() && m_W == c.getW() && m_H == c.getH())
    {
      return true;
    }
    return false;
  }
private:
  //属性
  int m_H;//高
  int m_L;//长
  int m_W;//宽
};
//利用全局函数判断两个立方体相等
bool isSame(Cube &c1, Cube &c2)//引用的方式传递,不会再拷贝一份数据
{
  if (c1.getL() == c2.getL() && c1.getW() == c2.getW() && c1.getH() == c2.getH()) 
  {
    return true;
  }
  return false;
}
int main() {
  //创建立方体对象
  Cube c1;
  c1.setH(10);
  c1.setL(10);
  c1.setW(10);
  cout << "c1的面积为" << c1.calculateS() << endl;
  cout << "c1的体积为" << c1.calculateV() << endl;
  //创建第二个立方体
  Cube c2;
  c2.setL(10);
  c2.setW(10);
  c2.setH(11);
  bool ret = isSame(c1, c2);//利用全局函数判断
  if (ret)
  {
    cout << "c1和c2相等" << endl;
  }
  else
  {
    cout << "c1和c2不相等" << endl;
  }
  ret = c1.isSameByClass(c2);//利用成员函数判断
  if (ret)
  {
    cout << "成员c1和c2相等" << endl;
  }
  else
  {
    cout << "成员c1和c2不相等" << endl;
  }
  system("pause");
  return 0;
}


相关文章
|
8月前
|
Java
面向对象编程的三大特征:封装;继承;多态
面向对象编程的三大特征:封装;继承;多态
45 0
|
8月前
|
存储 弹性计算 JavaScript
面向对象-1:类的定义
本实验将介绍TypeScript中类的定义
26 0
|
4天前
|
设计模式 存储 Java
【类图、类与类的关系、多态】
学习Java面向对象,掌握UML类图绘制,包括14种图形,使用PowerDesigner演示类图创建。理解类与类的关系,如继承、实现、依赖、关联、聚合、组合,以及`instanceof`关键字。学习简单工厂设计模式,实现多态,理解其在面试和设计原则中的重要性。通过实例操作,如String类常用方法、汽车与4S店案例,加深对面向对象概念的理解。最后,探讨面向对象设计原则,如单一职责、开闭原则、里氏替换原则、依赖倒置、接口隔离、迪米特法则和组合/聚合复用原则。
36 1
|
4天前
|
编译器 C语言 C++
【C++成长记】C++入门 | 类和对象(上) |面向过程和面向对象初步认识、类的引入、类的定义、类的访问限定符及封装
【C++成长记】C++入门 | 类和对象(上) |面向过程和面向对象初步认识、类的引入、类的定义、类的访问限定符及封装
|
4天前
|
数据安全/隐私保护 C++
C++类与对象【封装】
C++类与对象【封装】
|
8月前
|
8月前
|
8月前
类和对象-封装-封装的意义
类和对象-封装-封装的意义
34 0
|
8月前
|
设计模式 数据安全/隐私保护
面向对象编程基础:封装、继承、多态与抽象的全面解析
面向对象编程基础:封装、继承、多态与抽象的全面解析
32 0