运算符重载是类里的说法,你的Real类实现什么功能?把代码贴出来
flag=true这句话目前看着没有用处
运行结果:
代码:
#include <iostream>
using namespace std;
class Real
{
private:
float val;
public:
Real() { val = 0; }
Real(float v)
{
if (v < -3.4e38 || v>3.4e38)
cout << "Data Overflow" << endl;
else
val = (float)v;
}
void display()
{
cout << val << endl;
}
friend Real& operator+(Real& a, Real& b);
friend Real& operator-(Real& a, Real& b);
friend Real& operator*(Real& a, Real& b);
friend Real& operator/(Real& a, Real& b);
};
Real& operator+(Real& a, Real& b)
{
double v = a.val + b.val;
Real c(v);
return c;
}
Real& operator-(Real& a, Real& b)
{
double v = a.val - b.val;
Real c(v);
return c;
}
Real& operator*(Real& a, Real& b)
{
double v = a.val * b.val;
Real c(v);
return c;
}
Real& operator/(Real& a, Real& b)
{
double v = a.val / b.val;
Real c(v);
return c;
}
int main()
{
float a, b;
char op;
while (cin >> a >> b >> op)
{
Real A(a), B(b), C;
if (op == '+') {
C = A + B;
C.display();
}
else if (op == '-') {
C = A - B;
C.display();
}
else if (op == '*') {
C = A * B;
C.display();
}
else if (op == '/') {
C = A / B;
C.display();
}
}
return 0;
}
1.这题跟重载没有一毛钱关系
2.flag根本没定义,这代码根本编译不过去