求C++友元和类组合改错设计一个坐标点类point(提示不要写成Point),数据成员有横坐标X,纵坐标Y,成员函数有构

hungkun2022-10-04 11:39:541条回答

求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

已提交,审核后显示!提交回复

共1条回复
我是一个大西瓜 共回答了18个问题 | 采纳率83.3%
类的内容错了.
1年前

相关推荐

C++判断题,请大家帮忙看一下1.类的友元是类的成员。 ( )2.this指针是一个指针常量,不能改变它所引用的对象的数
c++判断题,请大家帮忙看一下
1.类的友元是类的成员。 ( )
2.this指针是一个指针常量,不能改变它所引用的对象的数据成员的值。 ( )
3.静态数据成员***于类的对象,因此不能通过类的对象来访问它。 ( )
4.被声明为内联(inline)的成员函数不可能被编译器转换为函数的普通形式。 ( )
5.用new动态申请的内存空间,必须显式地释放,否则会发生编译时错误。 ( )
6.私有数据成员可以被该类的所有成员函数直接访问。 ( )
7.可以通过不同类型的返回值来重载函数。 ( )
8.在构造函数和析构函数中虚机制都将被忽略。 ( )
9.向下类型转换总是不安全的。 ( )
10. 类模板必须实例化成类后才能使用。 ( )
watercock1年前1
wupengcheng333 共回答了20个问题 | 采纳率95%
错错错对错对错错对不知道
c++选择题13.已知类A是类B的友元,类B是类C的友元,则( ) A.类A一定是类C的友元 B.类C一定是类A的友元
c++选择题
13.已知类A是类B的友元,类B是类C的友元,则( )
A.类A一定是类C的友元
B.类C一定是类A的友元
C.类C的成员函数可以访问类B的对象的任何成员
D.类A的成员函数可以访问类B的对象的任何成员
dingpwen1年前1
lql46 共回答了13个问题 | 采纳率84.6%
此题选D
友元类是单向的(不可逆),也不传递(A须通过B的成员函数才能访问C)。
故A、B、C均不正确。
D项就是友元类的作用。
关于友元的描述中,( )是错误的.A.友元函数是成员函数,它被说明在类体内 B.友元函数可直接访问类中的
关于友元的描述中,( )是错误的.A.友元函数是成员函数,它被说明在类体内 B.友元函数可直接访问类中的
C.友元函数破坏封装性,使用时尽量少用
D.友元类中的所有成员函数都是友元函数
vv631年前1
summerboy81 共回答了12个问题 | 采纳率91.7%
A错,友元函数不是成员函数,但要在类中声明
1.定义复数Complex类,使用友元,完成复数的加法、减法、乘法和除法运算,以及对复数的输出.
tzr90001年前1
豆你玩123456 共回答了13个问题 | 采纳率92.3%
#pragma once
#include
using namespace std;
class Complex
{
public:
Complex(double re=0.,double im=0.)
{
real=re;
imag=im;
}
void setreal(const double r);
void setimag(const double i);
friend Complex operator-(const Complex &);
friend istream& operator>>(istream &in,Complex &c);
friend ostream& operator(istream &in,Complex &c)
{
return in>>c.real>>c.imag;
}
ostream& operato