65,208
社区成员
发帖
与我相关
我的任务
分享#include<iostream.h>
#include<iomanip.h>
const float PI=3.14159;
class point
{
public:
point(int a=0, int b=0);
point(point &p);
~point();
void display(void);
void move(int xx,int yy);
private:
int x;
int y;
};
point::point(int a,int b)
{
x=a;
y=b;
cout<<"point<<endl;
}
point::~point()
{
cout<<"point<<endl;
}
point::point(point &p)
{
x=p.x;
y=p.y;
cout<<"point"<<endl;
}
void point::display(void)
{
cout<<"x="<<x<<" y="<<y<<endl;
}
void point::move(int xx,int yy)
{
x+=xx;
y+=yy;
}
class circle
{
public:
circle(int a=0,int b=0,float c=1);
circle(circle &s);
~circle();
void display(void);
float get_cum();
float get_area();
private:
point p;
float r;
};
circle::circle(int a,int b,float c):p(a,b)
{
if(c<=0)
r=1;
else
r=c;
cout<<"circle<<endl;
}
circle::circle(circle &s):p(s.p)
{
r=s.r;
cout<<"circle"<<endl;
}
circle::~circle()
{
cout<<"circle<<endl;
}
void circle::display(void)
{
p.display();
cout<<"r="<<r<<endl;
}
float circle::get_cum()
{
return (2*PI*r);
}
float circle::get_area()
{
return (PI*r*r);
}
int main ()
{
int a,b;
float c;
cout<<";
cin>>a>>b;
cout<<
cin>>c;
circle t(a,b,c);
t.display();
cout"<<setw(6)<<setprecision(3)<<t.get_cum()
<<setw(6)<<setprecision(3)<<t.get_area()<<endl;
return(0);
}
circle::circle(circle &s):p(s.p) //这其实就是一个复制构造函数,其实p(s.p)就是类的组合。简单点说就是
//把调用p的复制构造函数,把s中p的复制一下。
{
r=s.r;
cout<<"circle"<<endl;
}