C++ 如果未初始化变量为负值,如何检查该变量?
我想使用if语句检查变量是否为负值 我开始学习编码,我需要帮助解决一个简单的问题,但我还没有解决方案C++ 如果未初始化变量为负值,如何检查该变量?,c++,variables,C++,Variables,我想使用if语句检查变量是否为负值 我开始学习编码,我需要帮助解决一个简单的问题,但我还没有解决方案 Fraction Fraction::divide(const Fraction &f) { Fraction tmp; if(tmp.denum<0) //uninitalized local variable used { tmp.denum*=-1; } tmp.num = (num*f.denum); tmp.denum = denum*f.num;
Fraction Fraction::divide(const Fraction &f)
{
Fraction tmp;
if(tmp.denum<0) //uninitalized local variable used
{
tmp.denum*=-1;
}
tmp.num = (num*f.denum);
tmp.denum = denum*f.num;
return tmp;
}
无法检查它,因为读取它会导致未定义的行为。不管它给出什么结果都无关紧要。它未初始化-它没有任何有效值。你为什么要在意它碰巧装着的垃圾的标志?无论如何,访问未初始化的对象都显示了未定义的行为。注意C++在技术上没有提供访问未初始化值的方法。为什么你认为你需要这样做?如果你想使用它,没有理由不初始化它。tmp.denum的所有这些操作的意义是什么,当你以后给它赋值的时候?函数的一半没有任何意义。然后将其初始化为零。