来看看!!!
#include<iostream>
#include<cmath>
using namespace std;
class point
{
public:
point(double xx,double yy){x=xx;y=yy;}
~point(){}
double getx(){return x;}
double gety(){return y;}
virtual void print();
private:
double x,y;
};
class circle :public point
{
public:
circle(double x,double y,double r):point(x,y),radius(r){}
~circle(){}
double getr(){return radius;}
virtual void print();
private :
double radius;
};
class distance
{
distance(circle c1,circle c2);
~distance(){}
double getdis(){return dis;}
void print();
private :
circle cir1,cir2;
double dis;
};
void point::print()
{
cout<<"("<<x<<","<<y<<")"<<endl;
}
void circle::print()
{
cout<<"The center of the circle is";
point::print();
cout<<"the radius of it is :"<<getr()<<endl;
}
distance::distance(circle c1,circle c2):cir1(c1),cir2(c2)
{
cout<<"The distance of the two circle's center is :";
dis=sqrt((cir1.getx()-cir2.getx()) * (cir1.getx()-cir2.getx()) + (cir1.gety()-cir2.gety()) * (cir1.gety()-cir2.gety()));
}
void distance::print()
{
cout<<dis<<endl;
double sumr=cir1.getr() + cir2.getr();
double minr=abs(cir1.getr() - cir2.getr());
cout<<"the relationship of the two circle is ";
if(dis>sumr)cout<<"外离"<<endl;
else if(dis==sumr)cout<<"外切"<<endl;
else if(dis>minr)cout<<"相交"<<endl;
else if(dis==minr)cout<<"内切"<<endl;
else if(dis<minr)cout<<"内含"<<endl;
}
void main()
{
circle c1(2,4,1),c2(4,4,1);
c1.print();
c2.print();
distance relation(c1,c2);
relation.print();
}
不知道怎么改啊!!!!!!!!!!!!!! distance class
[解决办法]
问题出在你在circle构造函数,你没有写 默认为private..改成这样 补个publie~
#include "stdafx.h"
#include<iostream>
#include<cmath>
using namespace std;
class point
{
public:
point(double xx,double yy){x=xx;y=yy;}
~point(){}
double getx(){return x;}
double gety(){return y;}
virtual void print();
private:
double x,y;
};
class circle :public point
{
public:
circle(double x,double y,double r):point(x,y),radius(r){}
~circle(){}
double getr(){return radius;}
virtual void print();
private :
double radius;
};
class Distances
{
public:
Distances(circle c1,circle c2);
~Distances(){}
double getdis(){return dis;}
void print();
private :
circle cir1,cir2;
double dis;
};
void point::print()
{
cout<<"("<<x<<","<<y<<")"<<endl;
}
void circle::print()
{
cout<<"The center of the circle is";
point::print();
cout<<"the radius of it is :"<<getr()<<endl;
}
Distances::Distances(circle c1,circle c2):cir1(c1),cir2(c2)
{
cout<<"The Distances of the two circle's center is :";
dis=sqrt((cir1.getx()-cir2.getx()) * (cir1.getx()-cir2.getx()) + (cir1.gety()-cir2.gety()) * (cir1.gety()-cir2.gety()));
}
void Distances::print()
{
cout<<dis<<endl;
double sumr=cir1.getr() + cir2.getr();
double minr=abs(cir1.getr() - cir2.getr());
cout<<"the relationship of the two circle is ";
if(dis>sumr)cout<<"外离"<<endl;
else if(dis==sumr)cout<<"外切"<<endl;
else if(dis>minr)cout<<"相交"<<endl;
else if(dis==minr)cout<<"内切"<<endl;
else if(dis<minr)cout<<"内含"<<endl;
}
void main()
{
circle c1(2,4,1),c2(4,4,1);
c1.print();
c2.print();
Distances relation(c1,c2);
relation.print();
}