Немного о приведении типов.
в С++ есть несколько вариантов приведения типов:
в С++ есть несколько вариантов приведения типов:
- const_cast,
- dynamic_cast,
- static_cast,
- reinterpret_cast,
- C-style cast.
const_cast используется для того, чтобы снять константность с объекта.
dynamic_cast используется для приведения типов в иерархии наследования.
static_cast используется для приведения одного типа к другому. При этом для встроенных типов используются встроенные правила приведения типов, а для остальных - правила, определенные программистом.
reinterpret_cast используется для низкоуровневого преобразования указателей. Компилятор считает, что программист лучше знает, как трактовать данную область памяти и тихо подчиняется. Следует применять с большой осторожностью.
C-style cast лучше не использовать в C++, потому что его трудно обнаружить в коде.
Приведение в стиле C делает static_cast, если он не подходит, делает reinterpret_cast, после этого, если надо, делает const_cast. Единственный вариант, которому нет аналога в C++ - это приведение к void.
Комментариев нет:
Отправить комментарий