案例一
求立方体的面积、体积
判断两个立方体是否相同
#include<iostream>
using namespace std;
class Cube
{
public:
void setA(int a)
{
m_a = a;
}
void setB(int b)
{
m_b = b;
}
void setC(int c)
{
m_c = c;
}
void setABC(int a=0, int b=0, int c=0)
{
m_a = a; m_b = b; m_c = c;
}
int getV()
{
m_v = m_a * m_b * m_c;
return m_v;
}
int getS()
{
m_s = (m_a * m_b + m_a * m_c + m_b * m_c) * 2;
return m_s;
}
int getA()
{
return m_a;
}
int getB()
{
return m_b;
}
int getC()
{
return m_c;
}
//方法二
int judgeCube(Cube &v1, Cube &v2)
{
if ((m_a == v2.getA()) && (m_b == v2.getB()) && (m_c == v2.getC()))
{
return 1;
}
else
return 0;
}
//方法三 成员函数重载
int judgeCube(Cube &v2)
{
return 0;
}
private:
int m_a;
int m_b;
int m_c;
int m_v;
int m_s;
};
//方法一 全局函数 相等返回1
int judge(Cube &v1, Cube &v2)
{
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 V= " << v1.getV() << endl;
cout << "v1 S= " << v1.getS() << endl;
v2.setABC(1,2,4);
//判断两个立方体是否相等
//方法1 使用全局函数judge
if (judge(v1, v2) == 1)
{
cout << "方法一:相等" << endl;
}
else
cout << "方法一:不相等" << endl;
//方法2 类的成员函数
if (v1.judgeCube(v1, v2) == 1)
{
cout << "方法二:相等" << endl;
}
else
cout << "方法二:不相等" << endl;
//方法3 问题抛出: 冗余 使用函数重载
if (v1.judgeCube(v2) == 1)
{
cout << "方法三:相等" << endl;
}
else
cout << "方法三:不相等" << endl;
system("pause");
return 0;
}
案例二
设计一个圆类,设计一个点类,计算点在圆的内部还是外部
#include<iostream>
using namespace std;
class MyPoint
{
public:
void setPoint(int _x1, int _y1)
{
x1 = _x1;
y1 = _y1;
}
int getx1()
{
return x1;
}
int gety1()
{
return y1;
}
private:
int x1;
int y1;
};
class AdvCircle
{
public :
void setCircle(int _r, int _x0, int _y0)
{
r = _r; x0 = _x0; y0 = _y0;
}
int judge(MyPoint &myp)
{
int d = (myp.getx1() - x0) * (myp.getx1() - y0) + (myp.gety1() - y0) * (myp.gety1() - y0);
if (d <= r*r)
return 1;//圆内
else
return 0;
}
private:
int r;
int x0;
int y0;
};
int main()
{
AdvCircle c1;
MyPoint p1;
c1.setCircle(2, 3, 3);
p1.setPoint(4, 4);
//在圆内返回1,不在返回0
int ret = c1.judge(p1);
if (ret == 1)
cout << "点在圆内" << endl;
else
cout << "点不在圆内" << endl;
system("pause");
return 0;
}