У меня возникли проблемы с передачей параметра класса с помощью функции main. У меня есть синтаксис для функции печати. Функция, с которой возникает проблема im, передает f2 в функцию fracmult. Если у кого-нибудь есть какие-либо объяснения или идеи для кода, которые приведут к тому, что числители и деномы будут умножены на 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)
{
cout << "-";
}
cout << numerator << "/" << denom;
}
void fraction::inputFrac()
{
cout<<"Please input the numerator ";
cin>>numerator;
cout<< "Please input the denominator ";
cin>>denom;
cout<<"Is the fraction positive? (Y or N);
cin>>positive;
}
fraction fraction::fracMult(fraction b)
{
numerator=b.numerator;
denom=b.denom;
}
fraction fraction::fracAdd(fraction& b)
{
fraction temp;
temp.numerator=numerator + b.numerator;
temp.denom=denom + b.denom;
return temp;
}
fraction fraction::fracDiv(fraction& b)
{
fraction temp;
temp.numerator = numerator * b.denom;
temp.denom = denom * b.numerator;
return temp;
}
fraction fraction::fracSub(fraction& b)
{
fraction temp;
temp.numerator = numerator - b.numerator;
temp.denom = denom - b.denom;
return temp;
}
int main(int argc, char** argv) {
fraction f1, f2, fresult;
f1.inputFrac(); //input the first fraction
f2.inputFrac(); //input the second fraction
cout<<endl;
f1.printFrac();
cout<<endl;
f2.printFrac();
cout<<endl;
cout << "The result of a * b is: ";
fresult = f1.fracMult(f2); // calculate a * b
fresult.printFrac(); // print out the result
Что такое * точно * проблема? Ошибка компилятора? Ошибка выполнения? – PaulMcKenzie
Ошибка выполнения. Скажем, значения i вводятся как f1.numerator = 1 f1.denom = 2 f2.numerator = 3 и f2.denom = 4, а затем я выполняю функцию f1.fracmult (f2), которая заканчивается как -1650232/0, поэтому мне нужна помощь с правильным кодом – John
Пожалуйста, не указывайте дополнительную информацию в комментариях, добавьте ее в свой пост, нажав «edit» – RHA