有人建议我这段代码中剩下的内容。运行时未显示任何错误,但输出带有垃圾值

问题描述 投票:-1回答:1

运行时未显示任何错误,但输出是这样的

f1=6.72623e-044
f2=0
f3=6.72623e-044

当我将a初始化为5时,会出现警告,就像非静态数据成员初始化程序仅可用于-std c plus plus。然后输出变为f1 = 5 f2 = 5 f3 = 10

#include<iostream>
#include<cstdio>
using namespace std;
class FLOAT
{
    float a;
    public:
        FLOAT(){}
        FLOAT(float x)
        {
            x=a;
        }
        FLOAT operator +(FLOAT f);
        void display(void);
};
FLOAT FLOAT::operator +(FLOAT f)
{
    FLOAT t;
    t.a=a+f.a;
    return t;
}
void FLOAT::display(void)
{
    cout<<a<<endl;
}
int main()
{
    FLOAT f1,f2,f3;
    f1=FLOAT(3.6);
    f2=FLOAT(5.8);
    f3=f1+f2;
    cout<<"f1="; f1.display();
    cout<<"f2="; f2.display();
    cout<<"f3="; f3.display();
    return 0;
}
c++ oop compiler-errors output
1个回答
0
投票

此构造函数没有多大意义,您正在将未初始化的a的值分配给参数x,该术语从不使用:]]

FLOAT(float x)
{
    x = a; //<-- here
}

我想你想要的是:

FLOAT(float x)
{
    a = x; //<-- here
}
© www.soinside.com 2019 - 2024. All rights reserved.