ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Новые операторы приведения типовОператор приведения типов языка С, по мнению Бьярни Страустрапа являлся слишком неопределённым, возможны были ошибки. Бьярни – основоположник С++ (см. Книгу Стивена Прата). Он вводит 4 типа операторов приведения типов: · static_cast · const_cast · reinterpret_cast · dynamic_cast Приведение static_cast Синтаксис static_cast <имя_типа>(<выражение>) Преобразование к типу <имя_типа> базируется только на типе, соответствующем <выражению> без run-time-проверки. Оператор не вполне безопасен в предположении, что программист знает, что делает. Преобразования выполняются в пределах иерархии классов (вниз или вверх, но не безопасно). Пример class B{…}; class D: public B(…); …………………………………….. void f(B *pb, D *pd) { D *pd2 = static_cast <D *>(pb); // Преобразование допустимо, но небезопасно, если pb // действительно ссылается на объект класса B, поскольку в дальнейшем к pd2 могут // обращаться как к указателю на объекты класса D B *pb2 = static_cast <B *>(pd); // Вполне безопасно, поскольку pd может ссылаться на // классы B или D ……………………………………… } Возвращаемое значение оператором – NULL, если нет связи в пределах иерархии типов или невозможно выполнить обычное стандартное преобразование типов подобное float<->double, int<->char и т.л.
Не нашли, что искали? Воспользуйтесь поиском:
|