c++重载运算符问题

img

img


如何重载加减乘除运算符,还有图片中flag=true是什么意思

运算符重载是类里的说法,你的Real类实现什么功能?把代码贴出来
flag=true这句话目前看着没有用处
运行结果:

img

代码:

#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根本没定义,这代码根本编译不过去

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632