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

Пример из книги- ну, напутан - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Двумерный массив в одномерный http://www.cyberforum.ru/cpp-beginners/thread954604.html
Здравствуцте, Есть двумерный массив с отсортированными строками. нужно его преобразовать в одномерный отсортированный. Алгоритм предлагаю следующий: (для массива 3*3) перебираем 9 раз массив если (эта строка непомеченная) ищем среди 1 столбца минимум и записываем его в одномерный. затем "удаляем" минимальный элемент из двумерного массива. если находим строку , где 1 элемент =...
C++ Список процессов с иконками Каким образом можно отабразить собственные иконки приложений в списке процессов? Процессы перечисляю так: HANDLE hProcessSnap; PROCESSENTRY32 pros32; int i=0; hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); pros32.dwSize = sizeof(PROCESSENTRY32); while (Process32Next(hProcessSnap, &pros32)) { String ^_stNameProc = gcnew String(pros32.szExeFile); http://www.cyberforum.ru/cpp-beginners/thread954595.html
C++ Что означают знаки подчеркивания впереди идентификатора?
В исходнике при описании типа через typedef имя типа начинается с 2-х знаков подчеркивания. Дальше в программе это имя присутствует без подчеркиваний. Объясните, какую функцию выполняют эти знаки?
Добавление двух функций на кнопку C++ Builder
C++ Подскажите пожалуйста, как на одну кнопку добавить две функции,пример- включение выключение что нибудь.
C++ Беда с подключением библиотеки http://www.cyberforum.ru/cpp-beginners/thread954571.html
Доброго времени суток. Суть проблемы в том, что один и тот же код работает по разному в зависимости от того находится ли он в библиотеки или нет... Вот класс: class Bitmap { private: Pixel** pixels; Vector2 Size; public:
C++ Как просмотреть цикл не последовательно в debugger'e? Вот, например, есть цикл int a; a = 0; int n = 10000; for (int i = 1; i < n; i++) a = a+1; Возможно ли, и если да, то как в debugger'e посмотреть значения переменных, которые изменяются в цикле (в данном случае a), но не последовательно, а с интервалом через 100 итераций? т.е., можно ли запустить цикл, посмотреть значения, прокрутить 100 итераций, посмотреть значения и т. д. подробнее

Показать сообщение отдельно
Dimka-novitsek
14 / 14 / 0
Регистрация: 26.04.2012
Сообщений: 1,091
14.09.2013, 23:22     Пример из книги- ну, напутан
Представляте, вчира три часа смотрел на страницу книги- разбирал его, пытался понять... Поначалу ве показалась мне совсем простым.. Дальше я попытался что-л понять , прослидить судьбу переменных. Задача аказалась грамоздкая и напутаная. Короче, через три часа я вобще перестал понимать что-л!!!!
Сегодня скопировал в блокнот и комментиру. Ужас!
И еще 3, 5 часа размышлений и коментариев- я их добавляю, удаляю!!И точно ужас!!!

Фух, пока все.Пока так расписал
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
Листинг 6.8. Объявление классов точки и прямоугольника
 
1: // Начало файла Rect.hpp
 
2: #include <iostream.h>
 
3: class Point // хранит координаты x,y
 
4: {
 
5:    // нет конструктора, используется конструктор по умолчанию
 
6: public:
 
7:    void SetX(int x) { itsX = x; >   // 
 
8:    void SetY(int у) { itsY = у; }  // 
 
9:    int GetX() const < return itsX;}
 
10:   int GetY() const { return itsY;}
 
11: private:
 
12:   int itsX;
 
13:   int itsY;
 
14: }; // конец объявления класса Point
 
15:
 
16:
 
17: class Rectangle
 
18: {
 
19: public:
 
20:   Rectangle(int top, int left, int bottom, int right):.; //  Это видно конструктор. Что за точки в его конце?
 
21:   ~Rectangle() {}
 
22:
 
23:   int GetTop() const { return itsTop; }  // Где в программе дальше используется функция GetTop ???
 
24:   int GetLeft() const { return itsLeft; } // Где в программе дальше используется функция GetLeft ???
 
25:   int GetBottom() const { return itsBottom; } // Где в программе дальше используется функция GetBottom ???
 
26:   int GetRight() const { return itsRight; }  // Где в программе дальше используется функция GetRight ???
 
27:
 
28:   Point GetUpperLeft() const { return itsUpperLeft; }   //  Почему мы пишем Point вместо int или воид?
 
29:   Point GetLowerLeft() const { return itsLowerLeft; }    //  Почему мы пишем Point вместо int или воид? Где, где вобще как-л ипользуется эта функция?
 
30:   Point GetUpperRight() const { return itsUpperRight; }  //  Почему мы пишем Point вместо int или воид?  Где, где вобще как-л ипользуется эта функция?
 
31:   Point GetLowerRight() const { return itsLowerRight; }  //  Почему мы пишем Point вместо int или воид? Где, где вобще как-л ипользуется эта функция?
 
32: 
 
33:   void SetUpperLeft(Point Location) {itsUpperLeft = Location; }  //Почему этим разным переменным мы присваиваем значение Location?
                                                                        //Где, где вобще как-л ипользуется эта функция?
34:   void SetLowerLeft(Point Location) {itsLowerLeft = Location; }   //Почему этим разным переменным мы присваиваем значение Location?
                                                                        //Где, где вобще как-л ипользуется эта функция?
35:   void SetUpperRight(Point Location) {itsUpperRight = Location; }  //Почему этим разным переменным мы присваиваем значение Location?
                                                                       //Где, где вобще как-л ипользуется эта функция?    
36:   void SetLowerRight(Point Location) {itsLowerRight = Location; }  //Почему этим разным переменным мы присваиваем значение Location?
                                                                       //Где, где вобще как-л ипользуется эта функция?
37:
 
38:   void SetTop(int top) { itsTop = top; }    // А не используется!!  
 
39:   void SetLeft (int left) { itsLeft = left; }  // А не используется!! 
 
40:   void SetBottorn (int bottom) { itsBottom = bottom; }  // А не используется!! 
 
41:   void SetRight (int right) { itsRight = right; }     // А не используется!! 
 
42:
 
43:   int GetArea() const;
 
44:
 
45: private:
 
46:   Point itsUpperLeft;  // Что за Point?? Очевидно, что itsUpperLeft переменная? Или таки обьект??
 
47:   Point itsUpperRight;  // Что за Point?? Очевидно, что itsUpperRight переменная? Или таки обьект??
 
48:   Point itsLowerLeft;  // Что за Point?? Очевидно, что itsLowerLeft переменная? Или таки обьект??
 
49:   Point itsLowerRight; // Что за Point?? Очевидно, что itsLowerRight переменная? Или таки обьект??
 
50:   int itsTop;
 
51:   int itsLeft;
 
52:   int itsBottom;
 
53:   int itsRight;
 
54: };
 
55: // конец файла Rect.hpp
 
 
 
Листинг 6.9. Содержимое файла RECT.cpp
 
1: // Начало файла rect.cpp
 
2: #include "rect.hpp"
 
3: Rectangle::Rectangle(int top, int left, int bottom, int right)  // Конструктор Rectangle
 
4: {
 
5:    itsTop = top; //Здесь используется присвоение внутри конструктора, а у нас собствено есть функция 
                     //void SetTop(int top) { itsTop = top; } Почему так и так? Это смысл или нидочет?
6:    itsLeft = left;//Также сдесь
 
7:    itsBottom = bottom;//Также сдесь
 
8:    itsRight = right;//Также сдесь
 
9:
 
10:   itsUpperLeft.SetX(left);//  Переменной itsX присваиваем left(левый), при этом также ее присваиваем itsLeft, при 
                              // этом left обьявлена и видна в конструкторе,x обьявлена и видна в публичной функции, 
                              // itsX обьявлена и видна в приватной части класса Point и собствено больше не используется!
                              
11:   itsUpperLeft.SetY(top);//Переменной itsY присваиваем top (верхний), при этом также ее присваиваем itsTop, при 
                              // этом top обьявлена и видна в конструкторе,у обьявлена и видна в публичной функции, 
                              // itsY обьявлена и видна в приватной части класса Point и собствено больше не используется! 
12:
 
13:   itsUpperRight.SetX(right);//За каким-то чёртом создаем еще обьект itsUpperRight и переменной itsX присваиваем right (правый), 
                              // при этом также ее присваиваем itsRight, при 
                              // этом right обьявлена и видна в конструкторе,x обьявлена и видна в публичной функции, 
                              // itsX обьявлена и видна в приватной части класса Point и собствено больше не используется!
 
14:   itsUpperRight.SetY(top);//За каким-то чёртом создаем еще обьект itsUpperRight и переменной itsY присваиваем top (верхний), 
                              // при этом также ее присваиваем itsTop, при 
                              // этом top обьявлена и видна в конструкторе,у обьявлена и видна в публичной функции, 
                              // itsY обьявлена и видна в приватной части класса Point и собствено больше не используется! 
 
15:
 
16:   itsLowerLeft.SetX(left);//Повторяем строку 10 с обьектом itsLowerLeft!!!!
 
17:   itsLowerLeft.SetY(bottom);//С этим же обьектом itsLowerLeft itsY присваиваем bottom (нижний), при этом также ее присваиваем itsBottom, при 
                              // этом bottom обьявлена и видна в конструкторе,у обьявлена и видна в публичной функции, 
                              // itsY обьявлена и видна в приватной части класса Point и собствено больше не используется! !!!!
 
18:
 
19:   itsLowerRight.SetX(right);//За каким-то чёртом создаем еще обьект itsLowerRight и переменной itsX присваиваем right (правый), 
                              // при этом также ее присваиваем itsRight, при 
                              // этом right обьявлена и видна в конструкторе,x обьявлена и видна в публичной функции, 
                              // itsX обьявлена и видна в приватной части класса Point и собствено больше не используется!
 
20:   itsLowerRight.SetY(bottom);//За каким-то чёртом создаем еще обьект itsLowerRight и переменной itsY присваиваем bottom (нижний), при этом также ее присваиваем itsBottom, при 
                              // этом bottom обьявлена и видна в конструкторе,у обьявлена и видна в публичной функции, 
                              // itsY обьявлена и видна в приватной части класса Point и собствено больше не используется! !!!!
 
21: }
 
22:  // А вобще разве не правамерно использовать обьект и точку в маин, а не в конструкторе? Это можно так и правильно?
 
23: //Короче жуткая ересь!! Автор был сильно пьян!!
 
24: // Вычисляем площадь прямоугольника, отыскивая его стороны
 
25: // определяем его длину и ширину, а затем перемножаем их
 
26: int Rectangle::GetArea() const
 
27: {
 
28:   int Width = itsRignt - itsLeft;//Правый минус левый
 
29:   int Height = itsTop - itsBottom; //Верхний минус нижний
 
30:   return (Width >> Height);  //А где а затем перемножаем их??  Десять минут искал гд-л значок множиния!!А, я таки должен 
                                 // сам его проставить...
 
31: }
 
32:
 
33: int main()
 
34: {
 
35:   //инициализируем локальную переменную Rectangle
 
36:   Rectangle MyRectangle (100, 20, 50, 80 );
 
37:
 
38:   int Area = MyRectangle.GetArea();
 
39:
 
40:   cout  << "Area: " << Area  << "\n";
 
41:   cout  << "Upper Left X Coordinate:";
 
42:   cout  << MyRectangle.GetUpperLeft().GetX();
 
43:   return 0;
 
44: }
 
/*  Мы передаем четыре координаты ага для двух точек в обьект MyRectangle. Да нет, это четыре отдельные точки!!
Но как же? Ведь каждая точка мает две координаты???!! Четыре, пусть три точки должны быть - и восемь ( ну шесть) координат!!
 
Цитата автора Конструктор класса Rectangle принимает четыре целочисленных параметра, именуемых top (верхний), left (левый), bottom (нижний) и right (правый). Эти четыре параметра, передаваемые конструктору, 
копируются в соответствующие четыре пере- менные-члена (см. листинг 6.9), после чего устанавливаются четыре точки (четыре объекта класса Point).
 
*/
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru