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类看起来像什么?我正在尝试构建一个类似的程序,并遇到问题用负数表示。