LINUX.ORG.RU

История изменений

Исправление KennyMinigun, (текущая версия) :

в третьем способе у тебя C-style cast, за который нонче в плюсах по рукам бьют. Лучше использовать (по мере убывания нужности):

  1. static_cast
  2. dynamic_cast
  3. const_cast
  4. reinterpret_cast

Причем присутствие последних 3 в программе — один из симптомов плохого дизайна (да, есть исключения, когда действительно надо). А вот C-style cast пытается сделать все виды каста по этому скрывает «преступления».

А вообще — этот твой «третий» сбособ — вовсе не отдельный способ а по просту вариация второго плюс каст (к ссылке). Т.е. если использовать православный static_cast то выглядит даже нелепо:

RenderWindow* g_window;

if (static_cast<RenderWindow&>(*g_window).isOpen()) { ... }

Исходная версия KennyMinigun, :

в третьем способе у тебя C-style cast, за который нонче в плюсах по рукам бьют. Лучше использовать (по мере убывания нужности):

  1. static_cast
  2. dynamic_cast
  3. const_cast
  4. reinterpret_cast

Причем присутствие последних 3 в программе — один из симптомов плохого дизайна (да, есть исключения, когда действительно надо). А вот C-style cast пытается сделать все каста по этому скрывает «преступления».

А вообще — этот твой «третий» сбособ — вовсе не отдельный способ а по просту вариация второго плюс каст (к ссылке). Т.е. если использовать православный static_cast то выглядит даже нелепо:

RenderWindow* g_window;

if (static_cast<RenderWindow&>(*g_window).isOpen()) { ... }