程序中是否需要成员函数

时间:2018-07-30 17:16:50

标签: c++

following program中:

#include <iostream.h>

class Fraction
{
private:
    int m_numerator;
    int m_denominator;

public:
    Fraction() // default constructor
    {
        m_numerator = 0;
        m_denominator = 1;
    }

    int getNumerator() { return m_numerator; }
    int getDenominator() { return m_denominator; }
    double getValue() { return static_cast<double>(m_numerator) / m_denominator; }
};

int main()
{
    Fraction frac; // Since no arguments, calls Fraction() default constructor
    std::cout << frac.getNumerator() << "/" << frac.getDenominator() << '\n';

    return 0;
}

我不明白函数double getValue()的作用。在main函数中,我们要求编译器调用getNumerator和getDenominator函数,这些函数直接将变量m_numerator和m_denominator的值传递给main函数。然后,主要功能直接以小数形式显示。是否需要使用getValue函数的明确原因?

来源:learncpp.com

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

我们经常尝试使代码具有通用性,以便我们可以重用代码,而不必编写类似于已经编写的新代码。 getValue()函数在此程序中没有用,但在其他程序中,让此函数将值返回为double会很有用,这样我们就不必编写强制转换和一直重复进行除法(甚至检查是否除以零)。