Реализация абстрактных типов данных с помощью классов С++, страница 4

        {

            if(f1.chislitel > f2.chislitel)

                return true;

            else return false;

        }

            //Иначе

        else

        {

            if((f1.chislitel * f2.znamenatel) > (f2.chislitel * f1.znamenatel))

                return true;

            else return false;

        }

    }

        //Обе дроби отрицательные

    else if(f1.znak == true && f2.znak == true)

    {

            //Если знаменатели равны

        if(f1.znamenatel == f2.znamenatel)

        {

            if(f1.chislitel > f2.chislitel)

                return false;

            else return true;

        }

            //Иначе

        else

        {

            if((f1.chislitel * f2.znamenatel) > (f2.chislitel * f1.znamenatel))

                return false;

            else return true;

        }

    }

        //Первая дробь отрицательная

    else if(f1.znak == true && f2.znak == false)

        return false;

        //Вторая дробь отрицательная

    else return true;

}

    //Возвращает числитель в числовом виде

int TFrac::GetChislitel()

{

    return this->chislitel;

}

    //Возвращает знаменатель в числовом виде

int TFrac::GetZnamenatel()

{

    return this->znamenatel;

}

    //Возвращает числитель в виде строки

QString TFrac::GetStringChislitel()

{

    return QString::number(this->chislitel);

}

    //Возвращает знаменатель в виде строки

QString TFrac::GetStringZnamenatel()

{

    return QString::number(this->znamenatel);

}

    //Возвращает строковое представление дроби

QString TFrac::ToString()

{

    if(this->znak == false)

        return QString::number(this->chislitel) + "/" + QString::number(this->znamenatel);

    else return "-" + QString::number(this->chislitel) + "/" + QString::number(this->znamenatel);

}

3.  Тестирование.