【C/C++】使用类和对象 设计立方体案例

该文章介绍了如何使用C++创建一个立方体类,包括设置和获取长宽高的函数,计算体积和表面积的方法,以及两个立方体相等的判断功能。文章通过全局函数和成员函数展示了两种判断立方体相等的方式,并提供了测试代码示例。
摘要由CSDN通过智能技术生成

创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
🔥c++系列专栏:C/C++零基础到精通 🔥

给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ

在这里插入图片描述

c语言内容💖:

专栏:c语言之路重点知识整合

【c语言】全部知识点总结


设计立方体类,求出立方体的面积和体积

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

在这里插入图片描述

一、创建立方体类

根据题目,先创建一个立方体类,属性有立方体的长、宽、高

并且为了实现“可控制的访问”,将属性的访问权限设置为private

如果直接设置成公有的,别人随意就能修改

class CCube			//立方体类
{
private:
	double m_L;		//长
	double m_W;		//宽
	double m_H;		//高
	CCube()			//构造函数进行初始化
	{
		m_L = 0;
		m_W = 0;
		m_H = 0;
	}
};

二、创建设置、获取属性的函数

根据立方体的属性长、宽、高,创建对应的设置长、宽、高和获取长、宽、高的函数

访问权限为public

为了让类的使用者只能通过设计者提供的接口去修改类的属性

public:
	//设置立方体的长宽高
	void setCube(double L, double W, double H)
	{
		m_L = L;
		m_W = W;
		m_H = H;

	}
	//获取立方体的长
	double getCube_L(CCube p_cube)
	{
		return p_cube.m_L;
	}
	//获取立方体的宽
	double getCube_W(CCube p_cube)
	{
		return p_cube.m_W;
	}
	//获取立方体的高
	double getCube_H(CCube p_cube)
	{
		return p_cube.m_H;
	}

三、创建类行为函数

一个完整的类是由属性和行为共同组成的,接下来根据题目要求创建行为函数

  • 计算立方体的体积
	//计算体积
	double getVolume()
	{
		return m_L * m_W * m_H;
	}
  • 计算立方体的表面积
	//计算表面积
	double getSquare()
	{
		return 2 * (m_L * m_W) + 2 * (m_L * m_H) + 2 * (m_W * m_H);
	}
  • 使用成员函数判断两个立方体是否相等
	void same(CCube& p_cube, CCube& p_cube2)
	{
		if (p_cube.getCube_L(p_cube) == p_cube2.getCube_L(p_cube2)
		 && p_cube.getCube_W(p_cube) == p_cube2.getCube_W(p_cube2)
		  && p_cube.getCube_H(p_cube) == p_cube2.getCube_H(p_cube2))
		{
			cout << "根据成员函数判断:两个立方体相等!" << endl;
		}
		else
		{
			cout << "根据成员函数判断:两个立方体不相等!" << endl;
		}
	}

根据题目要求,在全局定义一个函数用来判断两个立方体是否相等

//全局函数判断两个立方体是否相等
void same(CCube& p_cube, CCube& p_cube2)	//通过引用传递不会拷贝数据
{
	if (p_cube.getCube_L(p_cube) == p_cube2.getCube_L(p_cube2) 
	  && p_cube.getCube_W(p_cube) == p_cube2.getCube_W(p_cube2)
		&& p_cube.getCube_H(p_cube) == p_cube2.getCube_H(p_cube2))
	{
		cout << "根据全局函数判断:两个立方体相等!" << endl;
	}
	else
	{
		cout << "根据全局函数判断:两个立方体不相等!" << endl;
	}
}

四、测试执行

在主函数中使用CCube立方体类创建两个立方体对象,再通过调用类成员函数setCube()设置立方体的长、宽、高

调用类成员函数getVolume()计算体积,调用类成员函数getSquare()计算表面积

根据题目要求分别使用类成员函数和全局函数判断两个立方体是否相等

int main()
{
	CCube cube1;
	cout << "请输入立方体1的长、宽、高: ";
	double L1, W1, H1;
	cin >> L1 >> W1 >> H1;
	cube1.setCube(L1, W1, H1);
	cout << "立方体1的体积是" << cube1.getVolume() << endl;
	cout << "立方体1的表面积是" << cube1.getSquare() << endl << endl;

	CCube cube2;
	cout << "请输入立方体2的长、宽、高: ";
	double L2, W2, H2;
	cin >> L2 >> W2 >> H2;
	cube2.setCube(L2, W2, H2);
	cout << "立方体2的体积是" << cube2.getVolume() << endl;
	cout << "立方体2的表面积是" << cube2.getSquare() << endl << endl;

	cube1.same(cube1, cube2);
	same(cube1, cube2);

	return 0;
}

在这里插入图片描述

在这里插入图片描述

全部完整代码

#include <iostream>
#include <string>
using namespace std;
class CCube			//立方体类
{
	//这是为了要实现“可控制的访问”,直接设置成公有的,别人随意就能修改。
	//是为了让类的使用者只能通过设计者提供的接口去修改类的属性
private:
	double m_L;		//长
	double m_W;		//宽
	double m_H;		//高
public:
	//设置立方体的长宽高
	void setCube(double L, double W, double H)
	{
		m_L = L;
		m_W = W;
		m_H = H;

	}
	//获取立方体的长
	double getCube_L(CCube p_cube)
	{
		return p_cube.m_L;
	}
	//获取立方体的宽
	double getCube_W(CCube p_cube)
	{
		return p_cube.m_W;
	}
	//获取立方体的高
	double getCube_H(CCube p_cube)
	{
		return p_cube.m_H;
	}
	//计算体积
	double getVolume()
	{
		return m_L * m_W * m_H;
	}
	//计算表面积
	double getSquare()
	{
		return 2 * (m_L * m_W) + 2 * (m_L * m_H) + 2 * (m_W * m_H);
	}
	//成员函数判断两个立方体是否相等
	void same(CCube& p_cube, CCube& p_cube2)
	{
		if (p_cube.getCube_L(p_cube) == p_cube2.getCube_L(p_cube2) && p_cube.getCube_W(p_cube) == p_cube2.getCube_W(p_cube2)
			&& p_cube.getCube_H(p_cube) == p_cube2.getCube_H(p_cube2))
		{
			cout << "根据成员函数判断:两个立方体相等!" << endl;
		}
		else
		{
			cout << "根据成员函数判断:两个立方体不相等!" << endl;
		}
	}
	CCube()
	{
		m_L = 0;
		m_W = 0;
		m_H = 0;
	}
};

//全局函数判断两个立方体是否相等
void same(CCube& p_cube, CCube& p_cube2)	//通过引用传递不会拷贝数据
{
	if (p_cube.getCube_L(p_cube) == p_cube2.getCube_L(p_cube2) && p_cube.getCube_W(p_cube) == p_cube2.getCube_W(p_cube2)
		&& p_cube.getCube_H(p_cube) == p_cube2.getCube_H(p_cube2))
	{
		cout << "根据全局函数判断:两个立方体相等!" << endl;
	}
	else
	{
		cout << "根据全局函数判断:两个立方体不相等!" << endl;
	}
}
int main()
{
	CCube cube1;
	cout << "请输入立方体1的长、宽、高: ";
	double L1, W1, H1;
	cin >> L1 >> W1 >> H1;
	cube1.setCube(L1, W1, H1);
	cout << "立方体1的体积是" << cube1.getVolume() << endl;
	cout << "立方体1的表面积是" << cube1.getSquare() << endl << endl;

	CCube cube2;
	cout << "请输入立方体2的长、宽、高: ";
	double L2, W2, H2;
	cin >> L2 >> W2 >> H2;
	cube2.setCube(L2, W2, H2);
	cout << "立方体2的体积是" << cube2.getVolume() << endl;
	cout << "立方体2的表面积是" << cube2.getSquare() << endl << endl;

	cube1.same(cube1, cube2);
	same(cube1, cube2);

	return 0;
}

在这里插入图片描述

大家的点赞、收藏、关注将是我更新的最大动力! 欢迎留言或私信建议或问题。
大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容!如果本文哪里有错误的地方还请大家多多指出(●'◡'●)
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天喜Studio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值