#include "cmath"
#include "iostream"
using namespace std;
class CPoint
{
public:
CPoint(){cout<<"CPoint类的无参构造函数被调用"<<endl;}
CPoint(int xx,int yy);
CPoint(CPoint &p);
~CPoint(){cout<<"CPoint类的析构函数被调用"<<endl;}
getx();
gety();
private:
int x;
int y;
};
CPoint::CPoint(int xx,int yy)
{
x=xx;
y=yy;
cout<<"CPoint类的有参构造函数被调用"<<endl;
}
CPoint::CPoint(CPoint &p)
{
x=p.x;
y=p.y;
cout<<"CPoint类的复制构造函数被调用"<<endl;
}
CPoint::getx()
{
return x;
}
CPoint::gety()
{
return y;
}
class CRect
{
public:
CRect(){cout<<"CRect类的无参构造函数被调用"<<endl;}
CRect(CPoint xp1,CPoint xp2);
CRect(int x,int y,int m,int n);
CRect(CRect &1);
~CRect(){cout<<"CRect类的析构函数被调用"<<endl;}
getArea();
private:
int x;
int y;
int m;
int n;
CPoint p1,p2;
int Area;
};
CRect::CRect(CPoint xp1,CPoint xp2):p1(xp1),p2(xp2)
{
cout<<"CRect类的有参构造函数被调用"<<endl;
int x=static_cast<int>(p1.getx()-p2.getx());
int y=static_cast<int>(p1.gety()-p2.gety());
int Area=x*y;
}
CRect::CRect(int x,int y,int m,int n)
{
this->x=x;
this->y=y;
this->m=m;
this->n=n;
cout<<"CRect类的有4参构造函数被调用"<<endl;
}
CRect::CRect(CRect &1):p1(1.p1),p2(1.p2)
{
cout<<"CRect类的复制构造函数被调用"<<endl;
Area=1.Area;
x=1.x;
y=1.y;
m=1.m;
n=1.n;
}
CRect::getArea()
{
return Area;
}
void main()
{
int a,b,c,d;
cout<<"input a,b,c,d:";
cin>>a>>b>>c>>d>>endl;
CPoint myp1(a,b),myp2(c,d);
CRect rect1,rect2(myp1,myp2),rect3(a,b,c,d),rect4(rect2);
cout<<"rect1面积为:"<<rect1.getArea()<<endl;
cout<<"rect2面积为:"<<rect2.getArea()<<endl;
cout<<"rect3面积为:"<<rect3.getArea()<<endl;
cout<<"rect4面积为:"<<rect4.getArea()<<endl;
}