早教吧 育儿知识 作业答案 考试题库 百科 知识分享

求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函数的友元函数
以下是程序.号是分割线,第一为头文件,第二个为源文件.
#pragma once
#include
using namespace std;
class flu
{
public:
flu(int x0=0,int y0=0);
flu(flu &f)
{
x=f.x;
y=f.y;
}
int getX()
{return x;}
int getY()
{return y;}
private:
int x;
int y;
friend double max(flu leftp,flu rightp)
{
return (leftp.x-rightp.x)*(leftp.x-rightp.x)+(leftp.y-rightp.y)*(leftp.y-rightp.y);
}
};
class Rectangle
{
public:
int getarea()
{return area;}
Rectangle()
{
area=getX()*getY();
}
private:
int left;
int right;
int area;
};
#include "flu.h"
using namespace std;
void main()
{
int x1,x2,y1,y2,z;
coutx1>>y1;
coutx2>>y2;
flu a(x1,y1);
flu b(x2,y2);
cout
▼优质解答
答案和解析
类的内容错了.