На данный вопрос уже ответили:
Узнал о способах явного приведения типов в С++ и не совем понял чем static_cast <int *> (p) отличается от (int *) p к примеру... Допустимо и то и то - а в чем разница не знаю.
Разница между (int *) и static_cast<int *> в С++ - гигантская. Каст в стиле С, это последовательные попытки применения
const_caststatic_caststatic_cast и потом const_castreinterpret_castreinterpret_cast и потом const_castКакой первый подойдет - тот и применяется.
Например, static_cast не позволит вам снять с указателя константность, а обычный С-каст - позволит.
const int *p = 0;
static_cast<int *>(p); // Ошибка
(int *) p; // OK
В дополнение к этому, приведение типа в стиле С может корректно приводить указатель на объект класса вверх и вниз по иерархии даже тогда, когда базовый класс недоступен, т.е. игнорируя private и protected наследование (при условии, что приведение однозначно и нет виртуального наследования)
class A {};
class B : A {};
B *pb = 0;
static_cast<A *>(pb); // Ошибка
(A *) p; // OK
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости