C++面向对象:点和圆的位置判断以及头文件的书写

Posted Zeker62

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++面向对象:点和圆的位置判断以及头文件的书写相关的知识,希望对你有一定的参考价值。

#include<iostream>
using namespace std;

// 点和圆的关系的案例

// 点类
class Point{

    public :
    void setXandY(int x1,int y1){
        x=x1;
        y=y1;
    }
    int getX(){
        return x;
    }
    int getY(){
        return y;
    }
    private:
    int x;
    int y;
};
class Circle{
    public:
    // 设置半径,获取半径
    void setR(int r1){
        r=r1;
    }
    int getR(){
        return r;
    }
    // 设置圆心
    void setcenter(Point center1){
        center=center1;
    }
    Point getcenter(){
        return center;
    }

    // 获取圆心


    private:
    int r;

    // 在类中可以让另一个类作为本类的成员。
    Point 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{
        cout<<"点在圆外"<<endl;
    }
}

int main(){
    Circle c;
    c.setR(10);
    Point center;
    center.setXandY(10,0);
    c.setcenter(center);

    Point p;
    p.setXandY(10,10);

    isInCircle(c,p);
    return 0;


}

在书写头文件的时候,使用::作为作用域

point.h

#Programe once
#include<iostream>
using namespace std;

class Point{

public :
    void setXandY(int x1,int y1);
    int getX();
    int getY();
private:
    int x;
    int y;
};

point .cpp

Point::表示作用域

#include"point.h"
void Point::setXandY(int x1,int y1){
    x=x1;
    y=y1;
}
int Point::getX(){
    return x;
}
int Point::getY(){
    return y;
}

以上是关于C++面向对象:点和圆的位置判断以及头文件的书写的主要内容,如果未能解决你的问题,请参考以下文章

C++ 设计一个圆类,计算圆的面积和周长。

C++ 设计一个圆类,计算圆的面积和周长。

c++ 判断两圆位置关系

如何判断一个点是不是在多个圆的交点处?

python全栈开发第十四篇面向对象三大特性——继承

第4题。Python,编写一个函数,输入圆的半径r,计算其圆周长和圆面积并输出,写在纸上?