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";
}
}
왜 충돌이 발생합니까? 미리 감사드립니다.
잘못된 값을 0으로 확인하면 'm_a'가 0이 될 수 없습니다. 0은 아무 것도 나눌 수 있지만 0으로 나눌 수있는 것은 없습니다. –
@ Jägermeister 당신은 거꾸로 가지고있는 것 같습니다; 'm_a'와'm_b'는 클래스 멤버입니다. 'a'와'b'는 멤버를 초기화하는 데만 사용되는 매개 변수입니다. 이 점에서 모두 잘합니다. – Angew
어린 시절 수학 서적에서 분수 섹션을 검토해야합니다. 그것은 당신이 분수를 단순화하는 방법이 아닙니다. – molbdnilo