求C++友元和类组合改错设计一个坐标点类point(提示不要写成Point),数据成员有横坐标X,纵坐标Y,成员函数有构造函数(对X,Y初始化),拷贝构造函数,getX函数(返回X的值),getY函数(返回Y的值
求C++友元和类组合改错
设计一个坐标点类point(提示不要写成Point),数据成员有横坐标X,纵坐标Y,成员函数有构造函数(对X,Y初始化),拷贝构造函数,getX函数(返回X的值),getY函数(返回Y的值)
设计一个Rectangle类,数据成员有point对象left和right,分别对应矩形的两个点坐标,area对应矩形的面积,成员函数有构造函数(通过参数传递给两个坐标赋值,并在构造函数中根据两个坐标值计算矩形面积,赋值给area,计算面积可有两种选择,一种计算以这两点为左上角坐标和右上角坐标计算面积,一种计算调用max函数,实现以这两点坐标为底边,计算对应正方形面积),拷贝构造函数,getarea函数(返回area值).
计算对应正方形面积的函数为:
doublemax(pointleftp,pointrightp);该函数为point函数的友元函数
以下是程序.号是分割线,第一为头文件,第二个为源文件.
#pragmaonce
#include
usingnamespacestd;
classflu
{
public:
flu(intx0=0,inty0=0);
flu(flu&f)
{
x=f.x;
y=f.y;
}
intgetX()
{returnx;}
intgetY()
{returny;}
private:
intx;
inty;
frienddoublemax(fluleftp,flurightp)
{
return(leftp.x-rightp.x)*(leftp.x-rightp.x)+(leftp.y-rightp.y)*(leftp.y-rightp.y);
}
};
classRectangle
{
public:
intgetarea()
{returnarea;}
Rectangle()
{
area=getX()*getY();
}
private:
intleft;
intright;
intarea;
};
#include"flu.h"
usingnamespacestd;
voidmain()
{
intx1,x2,y1,y2,z;
coutx1>>y1;
coutx2>>y2;
flua(x1,y1);
flub(x2,y2);
cout