类和对象上案例

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

关于初步类和对象的两个案例

设计立方体类

在这里插入图片描述
我们需要知道的是:
在这里插入图片描述
然后就是设计一个类

**1.全局函数**
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 CubeS()
	{
		return 2 * m_L * m_H + 2 * m_H * m_W + 2 * m_L * m_W;
	}
	int CubeV()
	{
		return m_L * m_W * m_H;
	}
private:
	int m_L;
	int m_H;
	int m_W;
};

//全局函数
bool isSame(Cube& p1, Cube& p2)
{
	if (p1.GetL()==p2.GetL() && p1.GetH()== p2.GetH() && p1.GetW() == p2.GetW())
	{
		return true;
	}
	return false;
}

int main()
{
	//对象1
	Cube cb1;
	cb1.SetL(10);
	cb1.SetW(10);
	cb1.SetH(10);

	//对象2
	Cube cb2;
	cb2.SetL(10);
	cb2.SetW(10);
	cb2.SetH(10);

	cout << "cb1的面积为:" << cb1.CubeS() << endl;
	cout << "cb1的体积为:" << cb1.CubeV() << endl;
	cout << "cb2的面积为:" << cb2.CubeS() << endl;
	cout << "cb2的体积为:" << cb2.CubeV() << endl;
	bool ret = isSame(cb1, cb2);
	if (ret == true)
	{
		cout << "两个立方体相等" << endl;
	}
	else
	{
		cout << "不相等" << endl;
	}
	return 0;
}

2.成员函数
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 CubeS()
	{
		return 2 * m_L * m_H + 2 * m_H * m_W + 2 * m_L * m_W;
	}
	int CubeV()
	{
		return m_L * m_W * m_H;
	}
	//成员函数进行比较
	//用传入的立方体的参数跟现有的类中的属性进行比较
	bool isSame(Cube&p)
	{
		if (m_L== p.GetL() && m_H == p.GetH() &&m_W == p.GetW())
		{
			return true;
		}
		return false;
	}
private:
	int m_L;
	int m_H;
	int m_W;
};

//全局函数
//bool isSame(Cube& p1, Cube& p2)
//{
//	if (p1.GetL()==p2.GetL() && p1.GetH()== p2.GetH() && p1.GetW() == p2.GetW())
//	{
//		return true;
//	}
//	return false;
//}

int main()
{
	//对象1
	Cube cb1;
	cb1.SetL(10);
	cb1.SetW(10);
	cb1.SetH(10);

	//对象2
	Cube cb2;
	cb2.SetL(10);
	cb2.SetW(10);
	cb2.SetH(11);

	cout << "cb1的面积为:" << cb1.CubeS() << endl;
	cout << "cb1的体积为:" << cb1.CubeV() << endl;
	cout << "cb2的面积为:" << cb2.CubeS() << endl;
	cout << "cb2的体积为:" << cb2.CubeV() << endl;
	bool ret = cb1.isSame(cb2);
	if (ret == true)
	{
		cout << "两个立方体相等" << endl;
	}
	else
	{
		cout << "不相等" << endl;
	}
	return 0;
}

点和圆的关系

在这里插入图片描述
从题目我们可以推出:
在这里插入图片描述

class Point
{
public:
	//设置X
	void SetX(int x)
	{
		m_x = x;
	}
	//获取X
	int GetX()
	{
		return m_x;
	}
	//设置Y
	void SetY(int y)
	{
		m_y = y;
	}
	//获取Y
	int GetY()
	{
		return m_y;
	}
private:
	int m_x;
	int m_y;
};

class Circle
{
public :
	//设置半径
	void SetRadius(int r)
	{
		m_R = r;
	}
	//获取半径
	int GetRadius()
	{
		return m_R;
	}
	//设置圆心
	void SetCenter(Point p)
	{
		
		m_Center = p;
	}
	//获取圆心
	Point GetCenter()
	{
		return m_Center;
	}
private:
	int m_R;//半径
	Point m_Center;//圆心  //这里用另外一个类
};

//判断
void isSame(Circle& p1, Point& q)
{
	//获取点与圆心的距离
	int distance =
		(p1.GetCenter().GetX() - q.GetX()) * (p1.GetCenter().GetX() - q.GetX()) +
		(p1.GetCenter().GetY() - q.GetY()) * (p1.GetCenter().GetY() - q.GetY());
	int distance2 = p1.GetRadius() * p1.GetRadius();//半径的平方
	if (distance == distance2)
	{
		cout << "点在圆上" << endl;
	}
	else if (distance < distance2)
	{
		cout << "点在圆内" << endl;
	}
	else
	{
		cout << "点在圆外" << endl;
	}

}
int main()
{
	//创建圆
	Circle c1;
	c1.SetRadius(10);
	//创建圆心
	Point p;
	p.SetX(10);//横坐标
	p.SetY(0);//纵坐标
	//设置圆心
	c1.SetCenter(p);

	//创建点
	Point p2;
	p2.SetX(10);
	p2.SetY(11);

	//作比较
	isSame(c1, p2);
}

如有错误,多多指教!

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值