提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
关于初步类和对象的两个案例
设计立方体类
我们需要知道的是:
然后就是设计一个类
**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);
}
如有错误,多多指教!