Конгер Д.
Физика для разработчиков компьютерных игр
стр. 484

Класс rigid_body из листинга В.8 унаследован от класса point_mass. От класса rigid_body унаследованы другие классы. Поскольку класс rigid_body является родительским классом, его методы должны быть виртуальными.

Исключения

В высокоуровневых языках, например, в C++, есть специальный механизм обработки ошибок, называемый обработкой исключений (exception handling). Если использующая его программа сталкивается с ошибкой при выполнении, она генерирует исключение, которое другая часть программы может обработать, чтобы попытаться избежать последствий ошибки. Исключения должны использоваться только в особых случаях, например, при возникновении ошибок, из-за которых невозможно продолжать выполнять программу.

Когда функция генерирует исключение, оно может быть перехвачено в той же функции, или в функции, из которой она вызвана, или в любой функции, лежащей еще выше в последовательности вызовов.

Обычно при генерации исключения программа создает объект, содержащий информацию об исключении. Пример определения класса таких объектов приведен в листинге В.9.

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

Для нашей дискуссии неважно, что именно делает функция из листинга

В. 10. Нас интересует только проверка наличия ошибки, которая выполняется в строке 4. Если обнаруживается ошибка, то в строках 6-7 создается переменная типа pmlib_error, и в нее помещается сообщение об ошибке. Затем в строке 8 оператором throw генерируется исключение.



Новости
В PUBG вышла новая карта «Санок»
Bluehole не один месяц тестировала третью карту для PUBG, и сегодня тропическая миниатюрная карта «Санок» наконец-то вышла на общих серверах.
В Warface добавили режим «Королевская битва 2.0»
В Warface разработчики добавили режим «Королевская битва 2.0». Старая версия доработана, количество игроков увеличено с 16 до 32.