Если вы еще не знакомы с assert()
, самое время узнать об этом.Утверждение - это выражение, которое, по вашему мнению, является истинным, и которое вы бы хотели проверить отладчиком.В вашем случае вы можете посмотреть все места, которые обновляют HWND
, и написать assert(newHWNDvalue != NULL);
.
Утверждения являются формой комментария.В отличие от //
, компилятор их компилирует, а отладчик проверяет их, и поэтому они со временем не устаревают.
assert
- это макрос, и вам нужно будет включить <cassert>
заголовок.В сборках релиза заявленное выражение не компилируется, поэтому никаких накладных расходов нет.Это означает, что вы обычно можете позволить себе нетривиальные чеки.Для сложных классов может быть полезно добавить метод private: bool CheckInvariants() const
, чтобы вы могли assert(CheckInvariants());
в других членах.