вторник, 16 апреля 2013 г.

Приведение типов в C++

Немного о приведении типов.

в С++ есть несколько вариантов приведения типов:


  • 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.

Комментариев нет:

Отправить комментарий