更新布尔值时,类中的打印函数不更新

时间:2015-11-30 17:31:15

标签: c++ function class printing boolean

所以我有一个我写的课程,除了打印功能外都完成了。输入函数是正确的,布尔值将在输入函数中更新,但是当我尝试转移到打印函数时,它总是打印( - ),如果用户输入'Y',则假设绕过( - )和只打印出分数。如果有人反正让它上班,我觉得我已经尝试了一切。

编辑:当我打印出main中的两个分数为f1和f2时,打印功能正常工作,但是当我将相信的正面传递给打印功能时问题就出现了。

class fraction

{
    private:
        int numerator;
        int denom;
        bool positive;

    public:
        void inputFrac();
        void printFrac();

        fraction fracMult(fraction& b);
        fraction fracDiv(fraction& b);
        fraction fracAdd(fraction& b);
        fraction fracSub(fraction& b);
};

 void fraction::printFrac()
{
 if (positive=true)
    {
        cout << "-" << numerator << " / " << denom;
    }
    else
    {
        cout << "+" << numerator << " / " << denom;
    }
}
void fraction::inputFrac()
{    
    char tempchar1;
    fraction tempchar;

    cout<<"Please input the numerator ";
    cin>>numerator;
    cout<< "Please input the denominator ";
    cin>>denom;
    cout<<"Is the fraction positive? (Y or N) ";
    cin>>tempchar1;

    if((tempchar1=='Y'))
    {
        positive=true;

    }
    else
    {
        positive=false;
    }
}

2 个答案:

答案 0 :(得分:0)

您在if声明中进行了分配。 变化:

 if (positive=true)

为:

 if (positive==true)

答案 1 :(得分:0)

在printFrac功能中,您有if (positive=true)。对于你正在做的事情,这是不正确的。你应该改为if (positive) {/*stuff*/}