![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 12.12.2013
Сообщений: 4
|
![]()
Сам как не знаю сделать пожалуйста помогите)) Есть перегруженная функция, нужно сделать из нее виртуальную функцию. Даже не обязательно из этой программы, просто по заданию.
Задание. Дата в формате (день, месяц, год). ++увеличение даты на 1 сутки, -- уменьшение даты на 1 сутки, + сложение двух дат. Код C++ #include <iostream> #include <math.h> using namespace std; class date { public: int day,month,year; friend date operator ++(date d1); friend date operator --(date d2); friend date operator +(date d1,date d2); }; date operator ++(date d1) { if ((d1.month==1) || (d1.month==3) || (d1.month==5) || (d1.month==7) || (d1.month==8) || (d1.month==10)) { if (d1.day==31) { d1.day=1; d1.month=d1.month+1; } else {d1.day=d1.day+1;} } else if ((d1.month==4) || (d1.month==6) || (d1.month==9) || (d1.month==11)) { if (d1.day==30) { d1.day=1; d1.month=d1.month+1; } else {d1.day=d1.day+1;} } else if (d1.month==12) { if(d1.day==31) { d1.day=1; d1.month=1; d1.year=d1.year+1; } else {d1.day=d1.day+1;} } else if (d1.month==2) { if (d1.day==28) { d1.day=1; d1.month=d1.month+1; } else {d1.day=d1.day+1;} } else {cout <<"Data error!";} return d1; } date operator --(date d2) { if ((d2.month==2) || (d2.month==4) || (d2.month==6) || (d2.month==8) || (d2.month==9) || (d2.month==11)) { if (d2.day==1) { d2.day=31; d2.month=d2.month-1; } else {d2.day=d2.day-1;} } else if ((d2.month==5) || (d2.month==7) || (d2.month==10) || (d2.month==12)) { if (d2.day==1) { d2.day=30; d2.month=d2.month-1; } else {d2.day=d2.day-1;} } else if (d2.month==1) { if(d2.day==1) { d2.day=31; d2.month=12; d2.year=d2.year-1; } else {d2.day=d2.day-1;} } else if (d2.month==3) { if (d2.day==1) { d2.day=28; d2.month=d2.month-1; } else {d2.day=d2.day-1;} } else {cout <<"Data error!";} return d2; } date operator +(date d1,date d2) { date d; d.year=d1.year+d2.year; d.month=d1.month+d2.month; d.day=d1.day+d2.day; if (d.month>12){d.month=d.month-12;d.year=d.year+1;} if (d.day>31){d.day=d.day-31;d.month=d.month+1;} if (d.month>12){d.month=d.month-12;d.year=d.year+1;} return d; } int main() { date d1,d2,d3; cout <<"Enter first date:"<<endl; cout <<"Day:"; cin >>d1.day; cout <<"Month:"; cin >>d1.month; cout <<"Year:"; cin >>d1.year; cout <<endl<<"Enter second date:"<<endl; cout <<"Day:"; cin >>d2.day; cout <<"Month:"; cin >>d2.month; cout <<"Year:"; cin >>d2.year; cout <<endl; d3=d1+d2; d1=++d1; d2=--d2; cout <<"First date increased by the day:"<<d1.day<<"."<<d1.month<<"."<< d1.year<<endl; cout <<"Second date less the day:"<<d2.day<<"."<<d2.month<<"."<< d2.year<<endl; cout <<"Add two date:"<<d3.day<<"."<<d3.month<<"."< <d3.year<<endl; system ("PAUSE"); return 0; } |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 13.11.2013
Сообщений: 149
|
![]() Код:
Последний раз редактировалось nikmoon; 13.12.2013 в 06:52. |
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 11.01.2013
Сообщений: 149
|
![]() Цитата:
Может это и чушь, но это моя чушь и я ее никому не отдам.
|
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 13.11.2013
Сообщений: 149
|
![]()
Да как Вам сказать, я вот операторы вообще не применяю, хоть виртуальные, хоть невиртуальные, но кто-то же применяет?
Наверное и с такой конструкцией так же. P.S. Вполне можно применять точно так же, как обычные виртуальные методы. Последний раз редактировалось nikmoon; 13.12.2013 в 10:10. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ребят выручайте есть перегруженная функция, нужно сделать из нее виртуальную функцию | Выручайте23 | Помощь студентам | 0 | 12.12.2013 10:36 |
Выручите ребят нужно сделать Подобие часов... | ergans@mail.ru | Помощь студентам | 2 | 13.03.2013 12:41 |
Выручайте ребят! Очень нужно( | Nikita3000 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 28.01.2013 21:13 |
Перегруженная дружественная функция | Стремящийся | Общие вопросы C/C++ | 8 | 07.05.2012 09:08 |
Ребят выручайте! | murlay | Фриланс | 27 | 15.10.2009 20:44 |