C++ Type Casting – 1ª Parte

Este artigo foi movido para o PontoV, se quiser acessá-lo, basta clicar aqui.

Anúncios

8 Responses to C++ Type Casting – 1ª Parte

  1. vinigodoy disse:

    Testei o código do cast de vector para string e agora tenho que dar a péssima notícia para a vizinha sobre o falecimento do cãozinho dela.

    É, undefined behavior é mesmo uma droga…

    Ótimo post.

  2. bcsanches disse:

    Valeu Vini!

    Nao executa muito esse codigo senao a sociedade protetora dos animais vai vir atras de vc! 🙂

  3. skhaz disse:

    coicidencia ou não, estava escrevendo um watchdog para minha aplicação enquanto lia o artigo este artigo, e nao é que deu falha de segmentação oO

  4. bcsanches disse:

    Infelizmente isso faz parte do nosso dia a dia no C++. O que a gente tem que fazer eh tentar ao maximo fazer com que o compilador nos ajude a pegar os erros.

    Nao sei se seu problema foi causado por um cast errado, mas se for o caso, de preferencia em usar os casts do C++, eles forcam o programador a fazer as coisas de maneira mais explicita, minimizando erros.

  5. skhaz disse:

    não não, foi um brincadeira, na verdade ele não travou, mais acho que foi muita coicidencia (cachorro = post, skhaz = wacthdog), mesmo porque é uma aplicação com poucas linhas de codigo, e se trave-se eu não me surpreenderia 😀

  6. Jonatas disse:

    Se me permite, o parâmetro “param” poderia ser um ponteiro pra Objeto ao invés de um ponteiro pra void. Isso evitaria maiores cagadas, hehehe !! =)

    Aliás, eu estava precisando justamente de algo assim no momento. O pior é que, como eu sou acostumado com Java, já tava tentando partir pros lados da reflection (que em C++ é meio bizarra). Mas usar esse “tipo” (de evento) me parece bem mais sensato do que ficar tentando adivinhar qual o tipo do objeto.

  7. bcsanches disse:

    Sem duvidas Jonatas, poderia ser da classe objeto, eu usei o void * apenas para ilustrar o exemplo. A vantagem do void * eh que permite voce passar qualquer tipo de dado como parametro.

    Em um jogo que tenho brincado em casa atualmente tenho usado void * e tem funcionado bem, nao eh das praticas mais seguras, mas foi uma das melhores maneiras que vi para se fazer isso sem encher a classe base com tudo quanto é tipo de metodo.

    Se nao me engano, no Game Programming Gems 2 (é algum dos gems, mas nao lembro qual) tem um artigo sobre isso com uns macros que deixam o codigo bem mais legivel.

    Sobre reflection, tem uma lib na boost, da uma olhada la, pode lhe ser util.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: