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