在 class 中处理布尔值

Processing a boolean in a class

我有一个问题,我试图为一个分数分配 Y 或 N,如果它是正数,然后当分数被打印出来时具有适当的函数符号。我不明白我是否可以将 tempchar 传递给打印函数或如何正确打印出来。谢谢大家的帮助

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)
    {
    cout << "-";
    }
    cout << numerator << " / " << denom;
}
void fraction::inputFrac()
{    
    fraction tempchar;
    char tempchar1;

    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=1;
    }
}

您需要更改 'positive' 的值,具体取决于它是 'Y' 还是 'N'。 inputFrac() 中的条件未更新值。然后,您可以有条件地打印一条消息,如果为真,则带有“+”,如果为假,则带有“-”。

*编辑:假设您的 inputFrac() 方法有效,您应该只需要以下内容:

void fraction::printFrac()
{
    if (!positive)
    {
        cout << "-" << numerator << " / " << denom;
    }
    else
    {
        cout << "+" << numerator << " / " << denom;
    }
}