C++判断两圆关系(用Circle和Point类)
构造函数不是Circle(int cx, int cy, int r)而是Circle(Point pc,float r)时
#include<iostream>
#include<cmath>
using namespace std;
const double PI=3.14;
class Point{
public:
Point(int x=0,int y=0);
Point(Point &p);
~Point();
friend class Circle;
private:
int x,y;
};
Point::Point(int x0,int y0):x(x0),y(y0){
cout<<"point构造函数"<<endl;
}
Point::Point(Point &p):x(p.x),y(p.y){
cout<<"point复制构造函数"<<endl;
}
Point::~Point(){}
class Circle{
public:
Circle(Point p,float r=0);
Circle(Circle &c);
~Circle();
int getX(){
return pc.x;
}
int getY(){
return pc.y;
}
void showCount();
double getArea();
friend void judge(Circle cb,Circle ce);
private:
Point pc;
float r;
static int count;
};
Circle::Circle(Point p,float r):pc(p),r(r){count++;}
double Circle::getArea() {
return PI*r*r;
}
Circle::Circle(Circle &c):pc(c.pc),r