初学者在C ++中的OOP,赋值问题

时间:2016-10-02 18:29:21

标签: c++ oop declaration definition

这是我在C ++中使用OOP的第一个主要任务。 对于我的标题,我得到了以下类定义:

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()都设置为返回一个整数,但我不知道应该返回哪个加法器(Fraction aF)。它说它应该返回类Fraction的一个实例。它不能是一个整数,即使我的产品应该生成两个,如果我们按照构造函数中设置的参数。

例如,这是我到目前为止构建的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()
{
}

问题不在于算术。我可以搞清楚。我只是不知道这个函数加法器可以返回什么。我需要最简单的例子,所以几乎任何编译,只是所以我知道我正在处理的是什么大小(一个整数,一个字符串等)。

然后,如果我们看看我做过的来源。

#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 Fraction`。

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

1 个答案:

答案 0 :(得分:3)

a)很明显你的方法Fraction :: adder必须返回另一个Fraction对象:

...
return Fraction(resultingNumeratorHere, resultingDenominatorHere);

b)绝对。你必须在cpp

中实现算术