【C/C++学院】(5)面向对象编程练习--h和cpp分开编写

来源:互联网 发布:python idle无法运行 编辑:程序博客网 时间:2024/04/30 17:35

抽象一个点,一个圆,并判断点与圆的关系。(在圆内还是圆外)  


h文件进行类的声明;

cpp文件为类的实现细节;主要注重的细节为:


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

=================================================================================================================================


工程代码如下:

//MyCircle.h#pragma once#include"MyPoint.h"class MyCircle{public:void setCir(double x, double y, double r);public:char * judge(double x, double y);char * judge(MyPoint &p);private:double x1, y1; //圆心坐标double r1;  //圆半径};

//MyPoint.h#pragma onceclass 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
原创粉丝点击