在 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;
}
}
我有一个问题,我试图为一个分数分配 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;
}
}