C++ 否定分数但不修改原始分数
我已经编写了以下用于修改分数对象的类C++ 否定分数但不修改原始分数,c++,C++,我已经编写了以下用于修改分数对象的类 #include "Fraction.h" #include "GCD.h" #include <iostream> using std::cout; //Implementation of the timesEq() member function //Performs similar operation as the *= operator on the built-in types const Fraction & Fractio
#include "Fraction.h"
#include "GCD.h"
#include <iostream>
using std::cout;
//Implementation of the timesEq() member function
//Performs similar operation as the *= operator on the built-in types
const Fraction & Fraction::timesEq(const Fraction & op )
{
numerator *= op.numerator;
denominator *= op.denominator;
simplify(); // will make sure that denominator is positive and
// will invoke gcd() function to reduce fraction
// as much as possible
return (*this); // returns the object which invoked the method
}
const Fraction & Fraction::plusEq (const Fraction & op )
{
numerator *= op.denominator;
numerator += op.numerator * denominator;
denominator *= op.denominator;
simplify(); // will make sure that denominator is positive and
// will invoke gcd() function to reduce fraction
// as much as possible
return (*this); // returns the object which invoked the method
}
const Fraction & Fraction::minusEq (const Fraction & op )
{
numerator *= op.denominator;
denominator = denominator * op.denominator;
numerator -= op.numerator;
simplify(); // will make sure that denominator is positive and
// will invoke gcd() function to reduce fraction
// as much as possible
return (*this); // returns the object which invoked the method
}
const Fraction & Fraction::divideEq (const Fraction & op )
{
numerator *= op.denominator;
denominator *= op.numerator;
simplify(); // will make sure that denominator is positive and
// will invoke gcd() function to reduce fraction
// as much as possible
return (*this); // returns the object which invoked the method
}
Fraction Fraction::negate(void) const
{
return (*this * -1);
}
void Fraction::display(void)const {
cout << numerator << "/" << denominator;
}
void Fraction::simplify(void)
{
gcd = gcd(numerator, denominator);
numerator /= gcd;
denominator /= gcd;
}
#包括“分数.h”
#包括“GCD.h”
#包括
使用std::cout;
//timesEq()成员函数的实现
//对内置类型执行与*=运算符类似的操作
常数分数和分数::timesEq(常数分数和运算)
{
分子*=运算分子;
分母*=运算分母;
simplify();//将确保分母为正且
//将调用gcd()函数以减少分数
//尽可能
return(*this);//返回调用该方法的对象
}
常数分数和分数::plusEq(常数分数和运算)
{
分子*=运算分母;
分子+=运算分子*分母;
分母*=运算分母;
simplify();//将确保分母为正且
//将调用gcd()函数以减少分数
//尽可能
return(*this);//返回调用该方法的对象
}
常数分数和分数::minusEq(常数分数和运算)
{
分子*=运算分母;
分母=分母*操作分母;
分子-=运算分子;
simplify();//将确保分母为正且
//将调用gcd()函数以减少分数
//尽可能
return(*this);//返回调用该方法的对象
}
常量分数和分数::divideEq(常量分数和运算)
{
分子*=运算分母;
分母*=运算分子;
simplify();//将确保分母为正且
//将调用gcd()函数以减少分数
//尽可能
return(*this);//返回调用该方法的对象
}
分数:否定(无效)常数
{
返回(*this*-1);
}
空隙率::显示(空隙)常数{
cout假设您有一个构造函数,它以两个int
s作为参数(如果您没有,那么您应该这样做,而不仅仅是为了我的答案),请执行以下操作:
return Fraction(-numerator, denominator);
假设您有一个构造函数,它以两个int
s作为参数(如果没有,您应该这样做,而不仅仅是为了我的答案),请执行以下操作:
return Fraction(-numerator, denominator);
如果您在使用否定
函数时遇到问题,为什么要发布这么多行代码,其中有几行与否定
无关?我只想确保有足够的信息来理解我的问题您的GCD类看起来像什么?我正在尝试构建一个类似的程序,并且遇到了与否定
无关的问题ve数字。如果您在使用否定
函数时遇到问题,为什么要发布这么多行代码,其中有几行与否定
无关?我只想确保有足够的信息来理解我的问题您的GCD类看起来像什么?我正在尝试构建一个类似的程序,并遇到问题用负数表示。