Lost Temple

也许学习C++并不是为了用C++,而是为了更好地去学习与运用其他的高效工具去改善工作与生活.

#include<cassert>
#include<iostream>

class Fraction
{
private:
        int m_nNum;
        int m_nDen;
public:
    //default constructor
    Fraction(int nNum=0, int nDen=1)
    {
        assert(nDen != 0);
        m_nNum = nNum;
        m_nDen = nDen;
    }

    int GetNum() {return m_nNum;}
    int GetDen() {return m_nDen;}
    double GetFraction() {return static_cast<double>(m_nNum)/m_nDen; }
};

int main()
{
    Fraction cDefault(); //will call Fraction(0,1)
    Fraction cSix(6); // will call Fraction(6,1)
    Fraction cFiveThirds(5,3); //will call Fraction(5,3)
    std::cout<< cFiveThirds.GetFraction()<<std::endl; //legal
    std::cout<< cDefault.GetFraction()<<std::endl; //illegal this will occur aan error
    std::cout<<cSix.GetDen()<<"--"<<cSix.GetNum()<<std::endl;
    std::cout<<cFiveThirds.GetDen()<<"--"<<cFiveThirds.GetNum()<<"\n";
    return 0;
}