c++ OOP初学者,赋值问题

beginner in OOP in c++, assignment issues

本文关键字:赋值 问题 初学者 OOP c++      更新时间:2023-10-16

这是我在c++中的第一个面向对象的主要作业。对于我的头,我已经给出了以下类定义:

using namespace std;
class Fraction
{
  public:
    Fraction(void);
    Fraction(int aN, int aD);
    int getNumerator();
    int getDenominator();
    Fraction adder(Fraction aF);
    ~ Fraction(void);
}

赋值说明,加法器函数应该以当前对象为第一个操作数,函数形参为第二个操作数的方式工作。如果对象是1/6,参数是1/3,那么加法器应该给出3/6。

我的问题如下:

a) getNumerator()getDenominator()都被设置为返回整数,但我不知道加法器(分数aF)应该返回什么。它说它应该返回类Fraction的一个实例。它不可能是整数,即使我的乘积应该是2,如果我们按照构造函数中设置的参数去做的话。

为例,这是我目前为止构建的CPP:

#include "fraction.h"
#include <string>
Fraction::Fraction()
{
}
Fraction::Fraction(int aN, int aD) {
    numerator = aN;
    denominator= aD;
}
int Fraction::getNumerator() {
    return numerator;
}
int Fraction::getDenominator() {
    return denominator;
}
Fraction Fractiom::adder(Fraction aF) {
    aF = 1/3?      
    return ??
}
Fraction::~Fraction()
{
}

问题不在于算术。我可以算出来。我只是不知道这个addder函数能返回什么。我需要最简单的示例,以便编译任何东西,以便我知道我正在处理的大小(整数,单个字符串等)

然后,如果我们看看我所做的源代码。

#include <iostream>
#include "fraction.h"
using namespace std;
int main() {
    Fraction f1(1, 6);
    cout << f1.getNumerator() << "/" << f1.getDenominator() << endl;
    cin.get();
    return 0;
}

第一个例子只是显示了我如何使用getNumerator()getDenominautor() to produce a random分数'。

b)我假设当我得到cpp中的算术正确时,我可以写f1.adder(aF)来生产我的产品,或者这个假设是错误的?

a)很明显,您的方法Fraction::adder必须返回另一个Fraction对象,如下所示:

...
return Fraction(resultingNumeratorHere, resultingDenominatorHere);

b)肯定。您必须在cpp

中实现算术。