Шаг 631 - CObject::AssertValid

virtual void AssertValid( ) const;

Замечания
AssertValid выполняет проверку проверки правильности на этом объекте, проверяя внутреннее состояние. В отладочной версии библиотеки, AssertValid может утверждать и таким образом завершать программу с сообщением с номером строки и именем файла где утверждение потерпело неудачу. Когда Вы записываете ваш собственный класс, Вы должны перегрузить функцию AssertValid, чтобы обеспечить диагностические услуги для вас непосредственно и других пользователей вашего класса. Перегруженный AssertValid обычно вызывает функцию AssertValid базового класса перед проверкой элементов данных, уникальных к полученному классу.
Потому что AssertValid - функция константы, Вам не разрешают изменить объектное состояние в течение теста. Ваши собственные полученные функции класса AssertValid не должны бросать исключения, а скорее должны утвердить, обнаруживают ли они недопустимые объектные данные.
Определение "проверки правильности" зависит от класса объекта. Как правило, функция должна выполнить "поверхностная проверка". То есть если объект содержит указатели на другие объекты, она должна выяснить, являются ли указатели не пустым указателем, но это не должно выполнить тестирование проверки правильности на объектах, определяемыми указателями.

Пример.

// См. CObList::CObList для просмотра класса CAge, используемого в CObject примерах. 
// пример для  CObject::AssertValid 
void CAge::AssertValid() const 
{ 
	CObject::AssertValid(); 
	ASSERT( m_years > 0 ); 
	ASSERT( m_years < 105 ); 
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 26.01.2002