-1
我有两个关于我的程序的问题。我制作的程序创建了2个分数对象,并对它们进行了算术运算。 首先,是否有可能在class.cpp文件中的函数有多个对象作为它的参数:调用对象的类和函数
int Rational::addNums(Rational f1, Rational f2)
其次,在我的代码,由于某种原因,我的程序一直没有执行,当到达addNums函数调用。它似乎在getDenom()函数后停止。我不知道为什么会发生这种情况。
class Rational
{
public:
Rational(int = 2, int = 4);//default constructor thats set numerator and denominator with default values
//set functions
void setFrac(int, int);
void setNumer(int);
void setDenom(int);
//get functions
int getNumer() const;
int getDenom() const;
//arithmetic functions
int addNums(Rational, Rational);
int subNums(int, int);
int multNums(int, int);
int divNums(int, int);
void DisplayFracs(int);
void DisplayDecimals(float);
private:
int num;//numerator of fraction1
int den;//denominator of fraction1
};
#include <iostream>
#include "Rational.h"
using namespace std;
Rational::Rational(int num, int den)
{
setFrac(num, den);
}
void Rational::setFrac(int n, int d)
{
setNumer(n);
setDenom(d);
}
void Rational::setNumer(int n)
{
if (n != 0)
num = n;
else
cout << n << " is not a valid number." << endl;
}
void Rational::setDenom(int d)
{
if (d != 0)
den = d;
else
cout << d << " is not a valid number." << endl;
}
int Rational::getNumer()const
{
return num;
}
int Rational::getDenom() const
{
return den;
}
int Rational::addNums(Rational f1, Rational f2)
{
int m = f1.den;
int n = f2.den;
int temp = 0;
if(m < n)
{
temp = m;
m = n;
n = temp;
}
cout << m << " : " << n << endl;
while(n != 0)
{
temp = m % n;
m = n;
n = temp;
}
cout << m << " : " << n << endl;
return f1.den = m;
return f2.den = n;
}
int main()
{
Rational f1(2,7);
Rational f2(3,8);
cout << f1.getDenom()<< " : " << f2.getDenom() << endl;
}
感谢您的帮助。
你在这个示例代码中调用'addNums'的位置? – SleuthEye 2014-09-25 16:16:27
我不遵循第一个问题 - 你只是问一个函数是否可以有多个参数?当然,它可以(虽然你希望'addNums'返回一个'Rational',并带有一个'return'语句)。至于第二个问题:你的'main'永远不会调用'addNums',所以当然程序永远不会达到那个函数。 – 2014-09-25 16:16:51