Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
выручайте 23
0 / 0 / 0
Регистрация: 01.06.2013
Сообщений: 30
#1

Есть перегруженная функция, нужно сделать из нее виртуальную функцию заранее спс - C++

11.12.2013, 17:05. Просмотров 155. Ответов 0
Метки нет (Все метки)

Задание. Дата в формате (день, месяц, год). ++увеличение даты на 1 сутки, -- уменьшение даты на 1 сутки, + сложение двух дат.
C++
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2013, 17:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Есть перегруженная функция, нужно сделать из нее виртуальную функцию заранее спс (C++):

Функция sqrt: существует более одного экземпляра. Функция перегруженная - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;iomanip&gt; using namespace std; int main(){ float s, p; int c, a; s=0; ...

Перегруженная функция - C++
Помогите преобразовать функцию в перегруженную... Бьюсь уже хрен знает сколько.... Условия: В одномерном массиве, состоящем из п...

Перегруженная функция - C++
Написать перегруженную функцию, которая возвращает значение в зависимости от набора формальных параметров: x+x/2 Z={ ...

Перегруженная функция - C++
есть два задания. 1) - посчитать количество чисел в самой длинной возрастающей последовательности например, массив a={7, 2, 4, 48, 54,...

Перегруженная функция - C++
Где неправильно #include &lt;iostream&gt; #include &lt;math.h&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; #include &lt;iomanip&gt; using namespace...

Перегруженная функция - C++
У меня тут задача я её правильно написал но почему то визуалка говорит что перегруженная функция. #include &lt;iostream&gt; #include &lt;cmath&gt; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2013, 17:05
Привет! Вот еще темы с ответами:

math.h перегруженная функция - C++
sqrt , pow - существует более одного экземпляра перегруженная функция &quot;pow/sqrt&quot;,соответствующего списку аргументов В коде программы: ...

Перегруженная функция вывода >> - C++
Есть участок кода: #include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;Windows.h&gt; ...

Перегруженная функция Signum(x) - C++
Напишите программу, в которой бы использовалась перегруженная функция Signum(x). Эта функция должна возвращать +1, если число x, является...

Перегруженная константная функция - C++
В Qt в классе QByteArray есть две функции: char *data(); const char *data() const; Как компилятор понимает какую функцию вызвать?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru