Что такое устаревшее состояние?

Я не думаю, что сравнение стоимости между вызовом виртуальной функции и прямым вызовом функции. Если Вы думаете об использовании абстрактного базового класса (интерфейс), то у Вас есть ситуация, где Вы хотите выполнить одно из нескольких действий, базирующихся динамического типа объекта. Необходимо сделать тот выбор так или иначе. Одна опция состоит в том, чтобы использовать виртуальные функции. Другой - переключатель на типе объекта, или через (потенциально дорогой) RTTI, или через добавление типа () метод к базовому классу (потенциально увеличивающий использование памяти каждого объекта). Таким образом, стоимость вызова виртуальной функции должна сравниться со стоимостью альтернативы, не к стоимости выполнения ничего.

19
задан Lance Roberts 21 December 2010 в 20:07
поделиться

4 ответа

Устаревшее состояние - это информация в объекте, которая не отражает реальность.

Пример: элементы объекта заполнены информацией из базы данных, но основные данные в базе данных изменились с момента заполнения объекта.

Опасно устаревшее состояние - это устаревшее состояние, которое может отрицательно повлиять на работу программы, то есть заставляет его работать неправильно из-за неверных предположений о целостности данных.

33
ответ дан 30 November 2019 в 03:34
поделиться

В основном это означает недопустимое состояние. Обычно это побочный продукт отсутствия уведомления об изменении состояния.

0
ответ дан 30 November 2019 в 03:34
поделиться

Это происходит, когда значение, хранящееся в объекте, больше не отражает базовое постоянное значение. Я полагаю, что опасно устаревшее значение - это просто способ сказать, что значение действительно устарело.

3
ответ дан 30 November 2019 в 03:34
поделиться

«Устаревшее состояние» - это когда сохраненное (кэшированное) представление объекта остальной системы становится устаревшим. Например, объект удерживает дескриптор другого объекта, но второй объект тем временем был удален.

Попытка разыменовать устаревший дескриптор может привести к большим проблемам.

Большинство систем попытаются автоматически защитить вас от различные причины появления устаревшего состояния, но не всегда возможно охватить каждый случай. (В зависимости от системы.)

Ларри

1
ответ дан 30 November 2019 в 03:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: