在C++里,创建类FLOAT,包含一个浮点类型的数据成员.对该类重载所有的四则运算符。
答案:1 悬赏:20 手机版
解决时间 2021-03-06 07:31
- 提问者网友:棒棒糖
- 2021-03-05 13:52
在C++里,创建类FLOAT,包含一个浮点类型的数据成员.对该类重载所有的四则运算符。
最佳答案
- 五星知识达人网友:轻熟杀无赦
- 2021-03-05 14:10
经过俺挑灯夜战n天,应该是这样的了:
那几个警告可以忽视,你要不想看他,前边加个(float)强制类型转换
#include
class FLOAT
{
private:
public:
float fVar;
FLOAT()//默认构造函数,这个必须得有,否则编译通不过
{
// fVar=0;
}
FLOAT(float fT)//构造函数
{
fVar=fT;
}
virtual ~FLOAT()//析构
{
}
FLOAT operator + (FLOAT & fCurr)//重载+
{
this->fVar=this->fVar+fCurr.fVar;
return * this;
}
FLOAT operator - (FLOAT & fCurr)
{
this->fVar=this->fVar-fCurr.fVar;
return * this;
}
FLOAT operator * (FLOAT & fCurr)
{
this->fVar=this->fVar*fCurr.fVar;
return * this;
}
FLOAT operator / (FLOAT & fCurr)
{
this->fVar=this->fVar/fCurr.fVar;
return * this;
}
FLOAT operator = (FLOAT & fSour)
{
fVar=fSour.fVar;
return * this;
}
};
void main()
{
FLOAT r=FLOAT(1.1)+FLOAT(1.2)-FLOAT(1.3)*FLOAT(1.4)/FLOAT(1.5);
//看看结果对不对:1.3*1.4/1.5=1.213333333,1.1+1.2-1.213333=1.086666667
printf("%f",r.fVar);//<<运算符不能重载,用个printf显示算了
}
那几个警告可以忽视,你要不想看他,前边加个(float)强制类型转换
#include
class FLOAT
{
private:
public:
float fVar;
FLOAT()//默认构造函数,这个必须得有,否则编译通不过
{
// fVar=0;
}
FLOAT(float fT)//构造函数
{
fVar=fT;
}
virtual ~FLOAT()//析构
{
}
FLOAT operator + (FLOAT & fCurr)//重载+
{
this->fVar=this->fVar+fCurr.fVar;
return * this;
}
FLOAT operator - (FLOAT & fCurr)
{
this->fVar=this->fVar-fCurr.fVar;
return * this;
}
FLOAT operator * (FLOAT & fCurr)
{
this->fVar=this->fVar*fCurr.fVar;
return * this;
}
FLOAT operator / (FLOAT & fCurr)
{
this->fVar=this->fVar/fCurr.fVar;
return * this;
}
FLOAT operator = (FLOAT & fSour)
{
fVar=fSour.fVar;
return * this;
}
};
void main()
{
FLOAT r=FLOAT(1.1)+FLOAT(1.2)-FLOAT(1.3)*FLOAT(1.4)/FLOAT(1.5);
//看看结果对不对:1.3*1.4/1.5=1.213333333,1.1+1.2-1.213333=1.086666667
printf("%f",r.fVar);//<<运算符不能重载,用个printf显示算了
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯