文章目录
- 练习案例1:设计立方体类
- CPP代码
- 练习案例2:点和圆的关系
- CPP代码
- 代码总结
- 类的分文件编写
练习案例1:设计立方体类
设计立方体类(Cube)
求出立方体的面积和体积
分别用全局函数和成员函数判断两个立方体是否相等。
CPP代码
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 area() return 2 * (m_L * m_L + m_W * m_W + m_H * m_H)//获取体积int cal() return m_L * m_H * m_W;//利用成员函数判断两个立方体是否相等bool isEmptyClass(Cube &c) //参数只有一个,因为我们肯定使用已知的对象调用成员函数{if (m_L == c.getL() && m_W == c.getW() && m_H.getH() == c.getH())return true;elsereturn false;}
private:int m_L; int m_W;int m_H
};//利用全局函数判断两个立方体是否相等
//bool isEqual(Cube c1, Cube c2) //采用值传递会拷贝数据,但是安全,因为形参不能操作实参
bool isEqual(Cube &c1, Cube &c2) //采用引用传递不会拷贝数据,节省空间但是不安全,其实如果我们不想改变实参的值,建议不要用引用。
{if (c1.getL() == c2.getL() && c1.getW() == c2.getW() && c1.getH() == c2.getH())return true;elsereturn false;
}
练习案例2:点和圆的关系
设计一个圆形类(Circle),和一个点类(Point),计算点和圆的关系(点相对于圆的位置)。
具体关系例子如下:
点分别在圆外、圆上、圆内。
三个点只要和圆半径相比较就能得出点相对于圆的位置。
CPP代码
class point
{
public://设置和获取XY坐标void setX(int x) m_X = x;void setY(int y) m_Y = y;int getX() return m_X;int getY() return m_Y;
private: int m_X;int m_Y;
};class Circle
{
public://设置和获取半径和圆心void setR(int r) m_R = r;int getR() return m_R;void setCenter(Point center) m_Center = center;Point getCenter() return m_Center;
private:int m_R;point m_Center; //圆心位置
};//判断点和圆的关系:写成全局函数
void isInCircle(Circle &c, Point &p)
{//计算两点距离平方int distance = (c.getCenter.getX() - p.getX()) * (c.getCenter.getX() - p.getX()) +(c.getCenter.getY() - p.getY()) * (c.getCenter.getY() - p.getY())//计算半径的平方int rDistance = c.getR() * c.getR();///判断关系if (distance == rDistance)cout << "点在圆上" << endl;else if (distance > rDistance)cout << "点在圆外" << endl;else (distance < rDistance)cout << "点在圆内" << endl;}
代码总结
- 在一个类中,可以让另外一个类作为其成员
- 头文件和源文件的分文件形式:
类的分文件编写
a.h文件中,只留下成员函数的所有声明与其成员属性的声明,如果其中包含了其他头文件的内容,记得引用头文件
#inlcude "point.h"
class Circle
{
public://设置和获取半径和圆心void setR(int r);int getR();void setCenter(Point center);Point getCenter();
private:int m_R;point m_Center; //圆心位置
};
a.cpp文件中,对成员函数进行实现
#include "a.h"
void Circle::setR(int r) m_R = r;
.
.
.
.
.