Cantagalo Postado Abril 9, 2009 Denunciar Share Postado Abril 9, 2009 (editado) Olá e desde já agredeço a boa alma que me ajudar!Estou utilizando o Turbo C++ com o compilador da Borland e quando utilizo o operador dynamic_cast recebo o seguinte retorno:undefined symbol 'dynamic_cast'O que será que esta errado?Até mais! Editado Abril 12, 2009 por Cantagalo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Maligno Postado Abril 9, 2009 Denunciar Share Postado Abril 9, 2009 Cadê o código? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Cantagalo Postado Abril 10, 2009 Autor Denunciar Share Postado Abril 10, 2009 Desculpa, achei que nesta questão em expecífico o código seria irrelevante...Segue, então, o código: #include <iostream.h>class Mammal{ public: Mammal():itsAge(1) { cout << "Mammal constructor...\n"; } ~Mammal() { cout << "Mammal destructor...\n"; } virtual void Speak() const { cout << "Mammal speak!\n"; } protected: int itsAge;};class Cat : public Mammal{ public: Cat() { cout << "Cat constructor...\n"; } ~Cat() { cout << "Cat destructor...\n"; } void Speak () const { cout << "Meow\n"; } void Purr () const { cout << "Rrrrrrrrrrr\n"; }};class Dog : public Mammal{ public: Dog() { cout << "Dog constructor...\n"; } ~Dog() { cout << "Dog destructor...\n"; } void Speak () const { cout << "Woof\n"; }};int main (){ const int NumberMammals = 3; Mammal *Zoo[NumberMammals]; Mammal *pMammal; int choice, i; for (i = 0; i < NumberMammals; i++) { cout << "(1) Dog (2) Cat: "; cin >> choice; if (choice == 1) pMammal = new Dog; else pMammal = new Cat; Zoo = pMammal; } cout << "\n"; for (i = 0; i < NumberMammals; i++) { Zoo -> Speak(); Cat *pRealCat = 0; pRealCat = dynamic_cast <Cat*> (Zoo); if (pRealCat) pRealCat -> Purr(); else cout << "uh oh, not a cat!\n!"; delete Zoo; cout << "\n"; } return 0;}Agradeço a atenção! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Maligno Postado Abril 10, 2009 Denunciar Share Postado Abril 10, 2009 Não tem nada de errado com o seu cast. Que versão de Turbo C++ você está usando? Se for a versão 3.x (DOS), pode esquecer. Ela é de 1992; anterior à norma 14882-1998, quando o recurso "dynamic_cast" foi incluído à linguagem (capítulo 5, seção 2.7). Use outro compilador. Recomendo o BCC v5.5.1. É grátis e funciona bem, na maior parte dos casos. Download aqui. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Cantagalo Postado Abril 12, 2009 Autor Denunciar Share Postado Abril 12, 2009 Realmente.. minha versão é a 3.0!Agradeço a ajuda, vou seguir suas dicas!Um abraço! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Cantagalo
Olá e desde já agredeço a boa alma que me ajudar!
Estou utilizando o Turbo C++ com o compilador da Borland e quando utilizo o operador dynamic_cast recebo o seguinte retorno:
undefined symbol 'dynamic_cast'
O que será que esta errado?
Até mais!
Editado por CantagaloLink para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.