-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSource.cpp
61 lines (51 loc) · 2.22 KB
/
Source.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/*****
C++ 04 (19 февраля 2022)
Перегрузка операторов. Конструктор перемещения
Срок: к субботе 5 март
1. Напишите класс Время. Время состоит из часов, минут, секунд в пределах одних суток. Минимальное время = 0:00:00, максимальное время = 23:59:59 Перегрузите операторы:
• Сложение: время + время = время. При переполнении через границы суток посчитайте время в новых сутках.
• Вычитание: время - время = время. При переполнении вниз, в прошлые сутки, посчитайте время в новых сутках.
• Равенство и неравенство: время == время? время != время?
• Операторы вывода в поток: печатает в форме 04:05:06
• Оператор ввода с потока: пользователь вводит строку вида 04:05:06, программа разбирает её на части
Используйте дружественную перегрузку операторов.
2. Реализуйте правило 5 для класса динамического массива целых чисел:
• Конструктор копирования: выделяет персональную копию массива, копирует данные
• Конструктор перемещения: отнимает указатель у умирающего объекта
• Оператор присваивания: выкидывает свои старые данные. Выделяет персональную копию массива, копирует данные
• Оператор присваивания с перемещением: выкидывает свои старые данные. Отнимает указатель у умирающего объекта
• Деструктор: высвобождает динамически выделенную память
Проверьте, что это работает, с помощью функции «Создать случайный массив длины N». Функция принимает размер N; формирует новый массив такой длины, заполненный случайными числами; и возвращает его.
Узнайте, какой конструктор вызывается при этом.
3. Доработайте классы из задач 1 и 2: поместите их в пространство имён my («моё»).******/
#include <stdio.h>
#include <iostream>
#include "Time.h"
#include "DynArray.h"
using namespace std;
using namespace my;
int main()
{
setlocale(LC_ALL, "Russian");
Time time1("03:20:45");
Time time2("23:24:21");
Time time3("03:20:45");
Time time4 = time2 + time3;
time4.print();
Time time5 = time1 - time2;
time5.print();
cout << (time1==time2?"equils":"not equals") << endl;
cout << (time1!=time3?"not equals":"equils") << endl;
cout << "Enter time in format hh:mm:ss : ";
string enterStr;
cin >> enterStr;
Time enterTime(enterStr);
enterTime.print();
Time tmpTime;
tmpTime.print();
tmpTime= time2;
tmpTime.print();
DynArray arr1(10);
arr1.print();
return 0;
}