Создать класс Pair, определить класс-наследник Fraction.

Условие задачиСоздать класс Pair (пара чисел); определить методы изменения полей и сравнения  пар:  пара  p1  больше  пары  р2,  если (first.pl > first.р2)  или (first.pl = first.р2)  и  (second.pl > second.р2). Определить класс-наследник Fraction с полями: целая часть числа и дробная часть числа. Определить полный набор методов сравнения.

Листинг (исходник) программы:

#include <iostream>
#include <conio.h>
class pair //базовый абстрактный класс персоны
{
protected:
int first;
int second;
public:
void set_first(int t){first=t;};
void set_second(int t){second=t;};
int get_first(){return first;};
int get_second(){return second;};
pair(int ta=0, int tb=0):first(ta), second(tb){};
friend bool operator > (pair, pair);
friend bool operator < (pair, pair);
friend bool operator == (pair, pair);
friend bool operator != (pair, pair);
};
bool operator > (pair p1, pair p2){
return (p1.first>p2.first)?(true):(  (p1.first==p2.first)?(p1.second>p2.second):(false)  );
}
bool operator < (pair p1, pair p2){
return (p1.first<p2.first)?(true):(  (p1.first==p2.first)?(p1.second<p2.second):(false)  );
}
bool operator == (pair p1, pair p2){
return (p1.first==p2.first)&&(p1.second==p2.second);
}
bool operator != (pair p1, pair p2){
return (p1.first!=p2.first)||(p1.second!=p2.second);
}

 

class fraction: public pair
{
public:
void set_second(int t){if (t!=0) second=t;};
void print(){
std::cout<<«(«<<get_first()<<«.»<<get_second()<<«)» ;
}
fraction(const int& f=0, const int& s=1): pair(f, s){
if(s==0){
std::cerr<<«divide by zero»;
second=1;
}
}

};

int main (){
fraction f1(2, 3);
fraction f2(1, 2);
fraction f3;
f1.print();
if (f1>f2) std::cout<<» > «;
else       std::cout<<» < «;
f2.print();
std::cout<<std::endl;
_getch();
return 0;
}

[свернуть]

Создать класс Pair, определить класс-наследник Fraction.: 0 комментариев

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *