Aplicação em C++ ( Trabalhando com Classes/Objectos )

Boas :)

O método obtemDepartamento so faz sentido na classe director, logo so deve estar definido e declarado nesta.
Em relação ao problema, portanto tens um pointer para Pessoa que é a classe mais genérica, mas como tens necessidade de utilizar metodos especificos de uma classe que desta deriva, não tens acesso. Para resolver esse problema, tens de realizar conversões entre apontadores, ou seja, converter o pointer para pessoa num pointer para director. Pesquisa por dynamic_cast.
Ao efectuares um dynamic cast sobre um pointer, se os tipos forem compativeis, devolve um pointer para o objecto. Caso contrário, um pointer para null. Assim podes testar se a conversão foi possivel. Outra coisa, não precisas desses testes todos (essa especie de switch case) na função guardaDados() podes criar um método que recebe um ostream& e insere neste os dados relativos á instância dessa classe. Por outras palavras usa o polimorfismo :P.Fica bem.
 
Última edição:
PHP:
Director* pDirector = dynamic_cast<Director*>(i->second);
if (pDirector != 0) // base precisa ser um tipo polimórfico  | ok, cast válido
{
      myfile << " - " << pDirector->obtemDepartamento();
}

Alterado e a funcionar perfeitamente, já completei as partes obrigatórias do projecto e tenho a agradecer-vos isso.

Mais uma vez 1 muito Obrigado por toda a ajuda que me deram! :x2:

Estou aqui a pensar em por uma coisas novas no projecto mas para isso tenho que utilizar a função time(), não sei se em C++ :S Eu estive à procura e a unica coisa que achei foi uma estrutura mas que não funcionava, devia estar a fazer alguma coisa mal e acabei por deixar de lado.

Se me poderes dizer o que preciso de pesquisar já é mais que suficiente :)

Com os melhores cumprimentos,
Nelson Ferreira
 
Back
Topo