В C ++ преобразования типа , то static_cast
оператор выполняет явное преобразование типа. [1]
Синтаксис
static_cast < тип > ( объект );
Параметр типа должен быть типом данных, в который объект может быть преобразован с помощью известного метода, будь то встроенный или приведенный. Тип может быть ссылкой или перечислителем. Все типы преобразований, которые четко определены и разрешены компилятором, выполняются с использованием static_cast
. [2] [ не удалось проверить ]
static_cast<>
Оператор может быть использован для таких операций, как:
- преобразование указателя базового класса в указатель не виртуального производного класса;
- преобразование числовых типов данных, таких как перечисления, в целые числа или числа с плавающей запятой .
Хотя static_cast
преобразования проверяются во время компиляции, чтобы предотвратить очевидную несовместимость, проверка типа во время выполнения не выполняется, что могло бы предотвратить приведение между несовместимыми типами данных, такими как указатели. Кроме того, результат a static_cast
от указателя виртуального базового класса на указатель производного класса не определен.
Смотрите также
Рекомендации
- ^ Программирование: принципы и практика использования C ++ . Нью-Джерси, США: Аддисон-Уэсли. 2009. с. 594. ISBN 0321543726. OCLC 988823060 .
- ^ Экель, Брюс (2000). Мышление на C ++ . Нью-Джерси, США: Прентис-Холл . п. 857. ISBN. 0-13-979809-9.