面向对象编程之.h和.cpp文件分开编写

来源:互联网 发布:淘宝五金店铺介绍 编辑:程序博客网 时间:2024/05/17 22:38

对于一个小程序,一般不需要编写头文件,但是对于一个复杂的大项目,模块化编写程序,便于理解,且容易下手,将问题分解成一小块一小块,逐个击破:

抽象一个点,一个圆,并判断点与圆的关系。(在圆内还是圆外)
这里写图片描述

h文件进行类的声明;
cpp文件为类的实现细节;主要注重的细节为:
这里写图片描述

在类外定义成员函数;
使用域作用符;

工程代码如下:

//MyCircle.h  #pragma once  #include"MyPoint.h"  class MyCircle  {  public:      void setCir(double x, double y, double r);  public:      charchar * judge(double x, double y);      charchar * judge(MyPoint &p);  private:      double x1, y1; //圆心坐标      double r1;  //圆半径  };  
//MyPoint.h  #pragma once  class MyPoint  {  private:      double x0, y0; //点坐标  public:      void setPoint(double x, double y);      double getX0();      double getY0();  };  
//MyCircle.cpp  #include "MyCircle.h"  void MyCircle::setCir(double x, double y, double r)  {      x1 = x; y1 = y; r1 = r;  }  char* MyCircle::judge(double x, double y)  {      double s = (x1 - x)*(x1 - x) + (y1 - y)*(y1 - y) - r1*r1;      if (s > 0)      {          return "在圆外";      }      else      {          return "在圆内";      }  }  char* MyCircle::judge(MyPoint &p)  {      double s = (x1 - p.getX0())*(x1 - p.getX0()) + (y1 - p.getY0())*(y1 - p.getY0()) - r1*r1;      if (s > 0)      {          return "在圆外";      }      else      {          return "在圆内";      }  }  
//MyPoint.cpp  #include "MyPoint.h"  void MyPoint::setPoint(double x, double y)  {      x0 = x;      y0 = y;  }  double MyPoint::getX0()  {      return x0;  }  double MyPoint::getY0()  {      return y0;  }  
//MainTestClass.cpp  #include "iostream"  #include "MyCircle.h"  #include "MyPoint.h"  using namespace std;  void main()  {      MyCircle c1;      MyPoint  p1;      c1.setCir(2, 2, 3);      p1.setPoint(1, 1);      cout << c1.judge(p1.getX0(), p1.getY0()) << endl;      cout << c1.judge(p1) << endl;      system("pause");  }  
0 0
原创粉丝点击