Не используйте приведения в стиле C в C ++.
У нас есть 4 оператора приведения в C ++ (перечислены здесь в порядке опасности)
- static_cast <> Safe (когда используется для «преобразования числовых типов данных»).
- dynamic_cast <> Безопасный (но выдает исключения / возвращает NULL)
- const_cast <> Опасно (при удалении const).
- static_cast <> Очень опасно (когда используется для приведения типов указателей. Не очень хорошая идея !!!!!)
- reinterpret_cast <> Очень опасно. Используйте это, только если вы понимаете последствия.
Вы всегда можете сказать компилятору, что вы знаете лучше, чем он, и компилятор примет вас за чистую монету (причина в том, что вы не хотите, чтобы компилятор мешал, когда вы действительно знаете лучше).
Власть над компилятором - это обоюдоострый меч. Если вы знаете, что делаете, это мощный инструмент, который поможет, но если вы ошибетесь, он взорвется вам в лицо.
К сожалению, у компилятора есть причины для большинства вещей, поэтому, если вы переопределите его поведение по умолчанию, вам лучше будет знать, что вы делаете. В ролях одна вещь. Много времени это хорошо. Но если вы начнете отбрасывать const (ness), тогда вам лучше будет знать, что вы делаете.