|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.03.2009, 15:28 | #1 |
Регистрация: 07.03.2009
Сообщений: 3
|
Для чего код в классе ?
У меня есть класс для захвата экрана. Вижул Си добавил свой код в объявление процедуры инициализации ( та что совпадает с именем класса) .
Этот кусок выглядит так ": RGBMassiv(0)" Что означает этот кусок ? нужен ли он ? Можно ли это использовать ? Вопрос второй: Возможно ли сделать какими нибуть ухищьрениями RGBMassiv сделать двухмерным, чтоб получаль элементы по координатам, не высчитывая адрес ? Полный текст класса =ЗАГОЛОВОК========================= ===================== Код:
Последний раз редактировалось MaTBeu; 07.03.2009 в 20:17. |
07.03.2009, 16:17 | #2 |
Сама себе режиссер
Старожил
Регистрация: 27.04.2007
Сообщений: 3,365
|
1) "процедура инициализации(та, что совпадает с именем класса)" называется "конструктор";
2) RGBMassiv(0) - это, собственно, инициализация указателя RGBMassiv. Мне кажется, правильнее было бы RGBMassiv(NULL), но в С++ 0 и NULL взаимозаменяемы. В общем, этот код значит, что указатель сейчас указывает в пустоту, т.е. никуда; 3) нужен ли он? Зависит от последующего кода. Иногда просто жизненно нужен для программы, и без него она работать не будет; иногда ничего не изменится... Вообще, мое мнение - инициализация переменных всегда нужна. 4) можно ли это использовать? Я не помню кода, написанного самой Visual Studio, который нельзя использовать... 5) Возможно ли сделать какими нибуть ухищрениями RGBMassiv сделать двумерным, чтоб получать элементы по координатам, не высчитывая адрес? Вопрос не поняла, но двумерный массив объявляется RGBQUAD** RGBMassiv; (насколько я помню). Но если вы не знаете основы работы с массивами, то зря вы в классы полезли... И используйте тег CODE, это ж читать невозможно...
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
Последний раз редактировалось ACE Valery; 07.03.2009 в 16:20. |
07.03.2009, 16:31 | #3 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Код:
выделяете память посредством new[], значит и вызывайте delete[]. Кроме того, RGBMassiv в Вашем классе не всегда существует, так что как минимум должно быть: Код:
Еще у Вас там: RGBMassiv=new RGBQUAD[m_DibInfo.bmiHeader.biSizeImage/4]; Новую память то вы выделили, а старую куда дели? Последний раз редактировалось pu4koff; 07.03.2009 в 16:41. |
09.03.2009, 14:12 | #4 |
Регистрация: 07.03.2009
Сообщений: 3
|
Спасибо вам, особенно хорошенькой девушке
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Для чего нужен этот скрипт | belvision | JavaScript, Ajax | 4 | 20.02.2013 15:16 |
Для чего предназначен раздел Events в С++ | prikolist | Общие вопросы C/C++ | 1 | 16.02.2009 00:08 |
Для чего придумали TDataSource (Access)? | JY_ | БД в Delphi | 1 | 28.10.2008 14:28 |
Для чего нужен мобильник? | Altera | Свободное общение | 53 | 19.08.2008 21:12 |
Для чего вы программируете? | Elefanter | Свободное общение | 14 | 17.02.2008 21:54 |