| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Помогите разобратся почему прога вылетает |
| Автор: knut 2.9.2006, 14:58 | ||
| Привет всем. Помогите разобратся.почему прога вылетает при бxоде в if(bDR) //Error:: Unhandled exe. polygon ето метод класса
Зараниее мерси. |
| Автор: ptr 2.9.2006, 15:20 |
| Давай весь класс, с примером кода когда падает, а не один метод |
| Автор: zkv 2.9.2006, 16:32 | ||||
| 2knut, ptr прав, так трудно что то сказать, единственное что сразу бросилось в глаза, это стр. 20
я не помню таблицу приоритетов наизусть, поэтому всегда ставлю скобки:
и если приоритет у && выше чем у < (повторюсь, я не знаю точно, только предположение), то может здесь какие нибудь проблемы возникают? IMHO: it->y; визуально воспринимается легче чем (*it).y; |
| Автор: knut 2.9.2006, 16:46 | ||||
задча такова над построить выпулую оболочку.
|
| Автор: Rockie 2.9.2006, 17:05 |
| креативная вставка в коде Зачем у тебя указано 3 раза public. Что за тип CRect, его нет в коде который ты привел |
| Автор: ptr 2.9.2006, 17:12 | ||
knut, если не секрет, то где была выделена память под
|
| Автор: zkv 2.9.2006, 17:14 | ||
| knut интересно, а как вот это все инициализируется:
и вообще, ты выложил только код класса, который сам по себе ничего не делает, нужно же еще показать как ты этот класс потом конкретно применяешь, т.е. как члены инициализируешь, какие методы вызываешь... |
| Автор: knut 2.9.2006, 17:24 |
| ptr P_CD ето указатель типа CDC класса если внимателно посматреть я исползобвал (p_DC)такой же указател в коде и некакиx проблем. |
| Автор: vinter 2.9.2006, 17:38 | ||||
так кстати даже визард делает, чтобы как то различать где данные, где конструктор, а где методы класса, просто для глаз приятнее ИМХО
Это стандартный тип Visual'a |
| Автор: ptr 2.9.2006, 17:43 | ||
При чём тут p_DC? Я тебя не про это спрашивал. Где ты создаешь объект для P_DC? Это я заметил Да и вообще, если хочешь чтобы тебе быстро помогли, то выкладывай весь код, а не по частям. |
| Автор: zkv 2.9.2006, 17:48 | ||||||||
согласен, только в этом случае непонятно почему 3 а не 2 раза (не понятно зачем обособили Line(), если бы он был единственным интерфейсным методом, было бы понятно) Добавлено @ 17:50
я бы сказал класс из MFC |
| Автор: knut 3.9.2006, 12:15 | ||
Подскажите только одно пчему в этом отрезке у меня прога вылетает как толко она заxодет в if() цыкл. дтугово не надо
проблема связанна с MoveТо() и LineTo(). |
| Автор: vinter 3.9.2006, 12:31 |
| у тебя же ptr русским по белому спросил: ГДЕ ТЫ ВЫДЕЛЯЕШЬ ПАМЯТЬ ПОД P_DC????? что такое it и it1???? Скорее всего у тебя P_DC - "bad ptr" кинь весь код и проблемы сразу решатся!!! |
| Автор: bsa 3.9.2006, 12:45 |
| knut, надеюсь ты знаешь, что Line() - это не конструктор для class LINE? |
| Автор: knut 3.9.2006, 12:51 |
| Извените коночно за столь глупый вопрос (я бы сказал ламерский) а где правилние выделять память для P_DC в конструкторе или же при иницализацые. |
| Автор: bsa 3.9.2006, 13:07 |
| Логичнее в конструкторе - он вызывается всегда при создании объекта. И не надо помнить о том, что еще что-то надо вызвать. ;) Если у тебя много разных конструкторов данного класса, то имеет смысл общие операции инициализации вынести в закрытый общий инициализирующий метод, который будет вызываться из каждого конструктора. Кстати, раз ты в конструкторе выделяешь память, то не забудь определить для данного класса деструктор (~LINE()), который будет удалять этот CDC, иначе утечек памяти не избежать, а также конструктор копирования (LINE(const LINE &value)) и оператор присваивания (operator=(const LINE &value)), если собираешься ими пользоваться, иначе будут "unhandled exception". |
| Автор: MAKCim 3.9.2006, 16:17 |
| bsa с другой стороны если объект важный или требует много ресурсов то расточительно его создавать в конструкторе - ведь может так случится, что он и не потребуется то есть я хочу сказать что объект можно еще создавать в месте где есть к нему обращение |
| Автор: knut 5.9.2006, 09:51 |
| Всем спасибо вопрос закрыт. |