【C++】封装:练习案例-设计立方体类

练习案例:设计立方体类

设计立方体类(Cube)

求出立方体的面积和体积

分别用全局函数和成员函数判断两个立方体是否相等。

思路:

1)创建立方体类

2)设计属性 长,高,宽

3)设计行为 获取立方体面积和体积

4)分别利用全局函数和成员函数 判断两个立方体是否相等

示例代码

cpp 复制代码
#include<iostream>
using namespace std;
//立方体类设计
//1、创建立方体类
//2、设计属性
//3、设计行为 获取立方体面积和体积
//4、分别利用全局函数和成员函数 判断两个立方体是否相等

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 caculateS()
	{
		return (2 * m_L * m_W) + (2 * m_H * m_W) + (2 * m_L * m_H);
	}
	//获取立方体体积
	int caculateV()
	{
		return m_L * m_W * m_H;
	}
	//利用成员函数判断两个立方体是否相等
	bool isSameByClass(Cube &c)
	{
		if (m_L == c.getL() && m_W == c.getW() && m_L == c.getL())
		{
			return true;
		}
		else
			return false;
	}

private:
	int m_L; //长
	int m_W; //宽
	int m_H; //高
};

//利用全局函数判断 两个立方体是否相等
bool isSame(Cube &c1,Cube &c2)
{
	if (c1.getL() == c2.getL() && c1.getW() == c1.getW() && c1.getH() == c2.getH())
	{
		return true;
	}
	else
		return false;
}

int main()
{
	//创建立方体对象
	Cube c1;
	c1.setL(10);
	c1.setW(10);
	c1.setH(10);

	cout << "c1的面积为:" << c1.caculateS() << endl;
	cout << "c1的体积为:" << c1.caculateV() << endl;

	//创建第二个立方体
	Cube c2;
	c2.setL(10);
	c2.setW(10);
	c2.setH(10);

	cout << "c2的面积为:" << c2.caculateS() << endl;
	cout << "c2的体积为:" << c2.caculateV() << endl;

	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;
}

运行结果

cpp 复制代码
c1的面积为:600
c1的体积为:1000
c2的面积为:600
c2的体积为:1000
c1和c2是相等的
成员函数判断:c1和c2是相等的
相关推荐
leobertlan8 小时前
痛苦系列 | DSP-03 跨越单位圆:Z变换与零极点分析
算法·程序员
蛋蛋的就会顺顺的9 小时前
hot100 p0——栈,贪心算法,动态规划
java·前端·javascript·算法·leetcode·力扣
开发小能手1239 小时前
答案daanC语言
数据结构·算法
死磕音视频10 小时前
让小模型做选择题:限定候选项并读取 logits 概率的入门实践(附 Python 代码)
开发语言·python·大模型·文本分类·transformers
Navigator_Z11 小时前
LeetCode //C - 1291. Sequential Digits
c语言·算法·leetcode
WL学习笔记12 小时前
C & C++ 内存管理
c++·c++内存管理
pride.li12 小时前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉
顽疲12 小时前
Java vue 养老系统源码详解:月账单 care_month_bill 与 Quartz 扣费 Job 实践
java·开发语言·vue.js·vue养老·springboot养老·java养老
Wang's Blog12 小时前
Java 项目实战: 交友项目 - 安装开发工具与环境准备
java·开发语言·交友
旺仔仔仔13 小时前
机器人项目实战(5):从单次抓取,到接收指令连续做事
算法