C++でfractionを実装するプログラムを作った。私は自宅で次のC++レッスンから宿題の一種だから作った。プログラムはコンパイルされますが、起動後すぐにクラッシュします。私は自分自身で答えを検索し、私が見つけたのは、新しいオブジェクトが作成されたときにクラッシュすることでした。ここに誤りがあるコードがあります。私のプログラムがクラッシュしている、なぜ私は見つけることができない
//a and b are for the numerators and denominator in the fraction: a/b
ZFraction::ZFraction(int numer, int denom):m_numer(numer), m_denom(denom)//this constructor made it crash
{
if(m_numer != 0)
{
m_numer = m_denom % m_numer;
m_denom = m_denom/m_numer;
}
else
{
cout << "Fraction impossible";
}
}
なぜクラッシュするのですか?前もって感謝します。
誤った値をゼロにチェックすると、それはゼロにはならない 'm_a'です。ゼロは何でも分けることができますが、ゼロで除算することはできません。 –
@Jägermeisterあなたはそれを後方に持っているようです。 'm_a'と' m_b'はクラスメンバーです。 'a'と' b'はパラメータであり、メンバを初期化するためだけに使用されます。この点に関しては、すべてがうまくいきます。 – Angew
あなたの子供の数学の本の分数のセクションを確認する必要があります。これは分数を単純化する方法ではありません。 @Angew Uups。 – molbdnilo