【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是相等的
相关推荐
励志不掉头发的内向程序员8 分钟前
STL库——string(类模拟实现)
开发语言·c++
王廷胡_白嫖帝10 分钟前
Qt文件压缩工具项目开发教程
java·开发语言·qt
张飞洪30 分钟前
C# 13 与 .NET 9 跨平台开发实战:基于.NET 9 与 EF Core 9 的现代网站与服务开发
开发语言·c#·.net
郝学胜-神的一滴36 分钟前
使用C++11改进工厂方法模式:支持运行时配置的增强实现
开发语言·c++·程序人生·设计模式
我是场43 分钟前
Android14内核调试 - boot & vendor_boot
java·开发语言·spring boot
爱和冰阔落43 分钟前
从关机小游戏学 C 语言:分支循环 + 关键字(break/continue)实战
c语言·开发语言
Korloa1 小时前
表达式(CSP-J 2021-Expr)题目详解
c语言·开发语言·数据结构·c++·算法·蓝桥杯·个人开发
飞龙观奥1 小时前
光学件加工厂倚光科技:陪跑光学未来力量
科技
手握风云-1 小时前
回溯剪枝的 “减法艺术”:化解超时危机的 “救命稻草”(一)
算法·机器学习·剪枝
一念&1 小时前
今日科技风向|从AI芯片定制到阅兵高科技展示——聚焦技术前沿洞察
人工智能·科技