c++166面下该过程 向面向对象的转变

#include<iostream>
using namespace std;
//设计类 属性 函数
//案例一 :立方体 面积和体积 
//求两个立方体是否相等 (全局函数和成员函数)
class Cube
{
private:
	int m_a;
	int m_b;
	int m_c;
	int m_v;
	int m_s;


public:
	//void setA(int a)
	//{
	//	m_a = a;
	//}
	//void setA(int b)
	//{
	//	m_b = b;
	//}
	//void setA(int c)
	//{
	//	m_c = c;
	//}

public:
	void setABC(int a = 0, int b = 0, int c = 0)
	{
		m_a = a;
		m_b = b;
		m_c = c;
	}

	int getA()
	{
		return m_a;
	}

	int getB()
	{
		return m_b;
	}

	int getC()
	{
		return m_c;
	}


	int getV()
	{
		m_v = m_a * m_b * m_c;
		return m_v;  // 返回体积
	}
	int getS()
	{
		m_s = 2 * (m_a * m_b) + (m_a * m_c) + (m_b * m_c);
		return m_s;
	}
	int judge(Cube& v2)//成员函数 函数重载
	{//m_a 是 v1的私有属性
		if ((m_a == v2.getA()) &&
			(m_b == v2.getB()) &&
			(m_c == v2.getC())
			)
			return 0;//成员函数重载
	}
};
 
//全局函数PK类的成员函数 // 相等 1 不相等0
int judge(Cube& v1, Cube& v2)//v2(这个对象)会调用 Cube类的成员函数
{
		if ((v1.getA() == v2.getA()) &&
			(v1.getB() == v2.getB()) &&
			(v1.getC() == v2.getC()))
		{
			return 1;
		}
		else
		{
			return 0;
		}
	}


int main()
{
	Cube v1, v2;
	v1.setABC(1, 2, 3);
	cout<<v1.getS()<<endl;
	cout<<v1.getV()<<endl;

	//求两个立方体是否相等
	v2.setABC(1, 2, 4);
	//函数调用 意味着用v1对象类的成员函数
  int tag =	v1.judge(v2);//判断v1立方体和v2立方体是否相等 

	/*if(v1.judge(v1,v2)==1)
	 {
	cout << "=" << endl;
	 }*/

	 if(tag  ==1)
		{
	   cout << "=" << endl;
		}
	 else
	 {
		 cout << "not equal" << endl;
	 }

}

在这里插入图片描述

#include<iostream>
using namespace std;
//案例二: 设计一个圆形类:AdvCircle 和一个点类 Point 计算在圆的内部还是员的外部
//求点和圆的关系
class  Point;//声明 
class  Point
{
public:
	void setPoint(int _x1, int _y1)
	{
		x1 = _x1; y1 = _y1;
	}
	int getX1()
	{
		return x1;
	}
	int getY1()
	{
		return y1;
	}
protected:
private:

	int x1;
	int y1;
};


class  AdvCircle
{
public :
	void setCircle(int _r,int _x0,int _y0 )
	{
		r = _r; x0 = _x0; y0 = _y0;
	}
public:
	int judge(Point& myp)//引用
	{
		int d = (myp.getX1() - x0) * (myp.getX1() - x0) + (myp.getY1() - y0) * (myp.getY1() - y0);
		if (d <= r)
		{
			return 0;//圆形内部
		}
		else
		{
			return 1;
		}
		return 0;
	}
protected:
private:
	int r;
	int x0;
	int y0;
};



void main()
{
	AdvCircle c1;
	c1.setCircle(3, 1, 1);
	Point p1;
	p1.setPoint(2, 4);
	//在园内 1 不在圆内 0
	
	int  tag= c1.judge(p1);//把点带入圆里面
	//调用c1这个类的成员函数 会使用c1 这个私有属性
	//p1 这个类做函数参数封装了属性和方法
	if (tag == 1)
	{
		cout << "in the circle" << endl;
	}
	else {
		cout << "not in the circle" << endl;
	}
	return;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值