ExpertiDict

C++ · Intermediário · Inglês · Técnico

dynamic cast

daɪˈnæm.ɪk kæstsubstantivo

Conversão verificada em tempo de execução entre ponteiros ou referências de uma hierarquia polimórfica. Devolve nullptr para ponteiros inválidos e lança bad_cast para referências.

Onde usar

Usada para descobrir o tipo real de um objeto acessado pela base. Em review, muitos dynamic_cast indicam que falta uma função virtual para o comportamento.

Em código

Base* b = new Der;
if (auto* d = dynamic_cast<Der*>(b)) {
  d->so_na_derivada();
} else {
  // não era um Der
}

Exemplos

Use dynamic cast and check for nullptr before using it.

Use dynamic cast e confira nullptr antes de usar.

Too many dynamic casts here, add a virtual method.

Dynamic casts demais aqui, adicione um método virtual.

Cuidado

Só funciona em classes com ao menos uma função virtual e tem custo de execução; não use no lugar de um design polimórfico.

Sinônimos

downcast seguro

Antônimos

static cast

Veja também

Todos os termos de C++