Создать класс Time для работы с временными интервалами. Интервал должен
быть представлен в виде двух полей: минуты типа int и секунды типа int. при выводе минуты
отделяются от секунд двоеточием. Реализовать:
– сложение временных интервалов (+) (учесть, что в минуте не может быть
более 60 секунд)
– добавление секунд (++) (постфиксную и префиксную формы)
Код: Выделить всё
//Time.h
#include <iostream>
using namespace std;
class Time {
int min, sec;
public:
Time(){min=0;sec=0;};
Time(int m, int s){min=m;sec=s;}
Time(const Time&t){min=t.min;sec=t.sec;}
~Time(){};
int get_min(){return min;}
int get_sec(){return sec;}
void set_min(int m){min=m;}
void set_sec(int s){sec=s;}
//перегруженные операции
Time& operator=(const Time&);
Time& operator++();
Time operator++(int); //постфиксная операция
Time operator+(const Time&);
//глобальные функции ввода-вывода
friend istream& operator>>(istream& in, Time& t);
friend ostream& operator<<(ostream& out, const Time& t);
//Time.cpp
#include "Time.h"
#include <iostream>
using namespace std; //перегрузка операции присваивания
Time &Time: :o perator=(const Time &t)
{
//проверка на самоприсваивание
if(&t==this) return *this;
min=t.min;
sec=t.sec;
return *this;
}
//перегрузка префиксной операции инкремент6
Time &Time: :o perator++()
{
int temp=min*60+sec;
temp++;
min=temp/60;
sec=temp%60;
return *this;
}
//перегрузка постфиксной операции инкремент
Time Time: :o perator ++(int)
{
int temp=min*60+sec;
temp++;
Time t(min,sec);
min=temp/60;
sec=temp%60;
return t;
}
//перегрузка бинарной операции сложения
Time Time: :o perator+(const Time&t)
{
int temp1=min*60+sec;
int temp2=t.min*60+t.sec;
Time p;
p.min=(temp1+temp2)/60;
p.sec=(temp1+temp2)%60;
return p;
}
//перегрузка глобальной функции-операции ввода
istream &operator>>(istream &in, Time &t)
{
cout<<"min?"; in>>t.min;
cout<<"sec?"; in>>t.sec;
return in;
}
//перегрузка глобальной функции-операции вывода
ostream &operator<<(ostream &out, const Time &t)
{
return (out<<t.min<<" : "<<t.sec);
}
//main.cpp
#include "Time.h"
#include <iostream>
using namespace std;
void main()
{
Time a;//конструктор без параметров
Time b; //конструктор без параметров
Time c; //конструктор без параметров
cin>>a;//ввод переменной
cin>>b;//ввод переменной
++a;//префиксная операция инкремент
cout<<a<<endl;//вывод переменной
c=(a++)+b;//сложение и постфиксная операция инкремент
cout<<"a="<<a<<endl; //вывод переменной
cout<<"b="<<b<<endl; //вывод переменной
cout<<"c="<<c<<endl; //вывод переменной
system("pause");
}
"сложение временных интервалов (+) (учесть, что в минуте не может быть
более 60 секунд) "
было: "сравнение временных интервалов (== и !=)"