Стандарты программирования на С++




Исключения


Используйте открытое наследование для моделирования заменимости (см. рекомендацию 37).

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

Если вам требуется перекрытие виртуальной функции.

Если вам нужен доступ к защищенному члену.

Если вам надо создавать объект до используемого, а уничтожать — после, сделайте его базовым классом.

Если вам приходится заботиться о виртуальных базовых классах.

Если вы знаете, что получите выгоду от оптимизации пустого базового класса и что в вашем случае она будет выполнена используемым вами компилятором (см. рекомендацию 8).

Если вам требуется управляемый полиморфизм, т.е. отношение заменимости, которое должно быть видимо только определенному коду (посредством дружбы).




Содержание  Назад  Вперед