Практикум по объектно-ориентированному программированию на базе языка с++ Учебно-методическое пособие



Pdf көрінісі
бет11/44
Дата21.02.2024
өлшемі0.49 Mb.
#492719
түріПрактикум
1   ...   7   8   9   10   11   12   13   14   ...   44
ООП С

 
 
22 
ЛАБОРАТОРНАЯ РАБОТА № 4. 
ВРЕМЯ В ОБЪЕКТНО-ОРИЕНТИРОВАННОМ 
ПРОГРАММИРОВАНИИ 
Ключевые слова: деструктор класса, UTCGMTunix-время, струк-
тура tm, системное время, функции времени и даты, таймер, счетчик. 
Цель: Получить навыки разработки класса для хранения времени 
и использования объектов этого класса. 
Если создание объекта подразумевает выделение каких-либо ресур-
сов, то таким классам требуется функция, которая освободит ресурсы,
выделяемые конструктором. Такая функция называется деструктором, она 
будет автоматически вызвана при уничтожении объекта. 
Деструктор: 
 Имя деструктора начинается с тильды (~), непосредственно за кото-
рой следует имя класса. 
 Деструктор не имеет параметров и возвращаемого значения. Вызов 
деструктора выполняется неявно, при уничтожении объекта класса. 
 Если в классе деструктор не определен явно, то компилятор генери-
рует деструктор по умолчанию, который просто освобождает память, 
занятую данными объекта. В тех случаях, когда требуется выполнить 
освобождение ресурсов, выделенных конструктором, необходимо 
определить деструктор явно. 
 Деструктор вызывается автоматически, когда объект удаляется из па-
мяти. Для локальных объектов это происходит при выходе из блока, 
в котором они объявлены. Для глобальных объектов – как часть про-
цедуры выхода из main. Для объектов, заданных через указатели,
деструктор вызывается неявно при использовании операции delete
 
Свойства деструктора
 не имеет аргументов и возвращаемого значения; 
 не перегружается; 
не наследуется
 не может быть объявлен как const или static
может быть виртуальным
 если деструктор явным образом не определен, компилятор автомати-
чески создает пустой деструктор; 
 описывать в классе деструктор явным образом требуется в случае, когда 
объект содержит указатели на память, выделяемую динамически – иначе 


23 
при уничтожении объекта память, на которую ссылались его поля-указа-
тели, не будет помечена как свободная. Указатель на деструктор опре-
делить нельзя. 
Без необходимости явно вызывать деструктор объекта не рекомен-
дуется. 
Время 
Greenwich Mean Time (GMT) – это среднее солнечное (астрономи-
ческое) время меридиана, проходящего через Гринвичскую королевскую 
обсерваторию около Лондона. Время по GMT было введено для между-
народного использования в 1884 году. GMT стало точкой отсчета времени 
в других часовых поясах.
В 1961 году была официально запущена система UTC (хотя 
название не было принято до 1967): мгновение 1 января 1961 года
в 00:00:01.422818 по международному атомному времени (TAI) было 
равно 1 января 1961 года в 00:00:00.000000 по UTC, а одна секунда UTC 
равнялась 1.000000015 секунды TAI. Каждые несколько месяцев вводи-
лись временные скачки, а в конце каждого года менялась частота таких 
скачков. 
В сфере IT существует еще одна распространенная современная 
система времяисчисления: unix-время. Эта система считает количество 
секунд, прошедших с 1 января 1970 года по UTC
// Пример получения системной даты и времени 
#include  
#include  
int main() 

struct time_t t; 
struct tm *t_m; 
time(&t);
t_m=localtime(& t); 
cout<<"Local time is: " <tm_hour<< ":" <tm_min<<":"
<tm_sec; 
cout<<"Local date is: " <tm_year<< ":"<< t_m->tm_mon<<":"
<< t_m->tm_mday; 
return 0; 



Достарыңызбен бөлісу:
1   ...   7   8   9   10   11   12   13   14   ...   44




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет