Ir para conteúdo
Fórum Script Brasil
  • 0

O que está mal?


Guest sonicmaster

Pergunta

Guest sonicmaster

O que está mal. Porque não guarda os dados direito?

#include <iostream>
#include <iomanip>
#include <string>
#include <ctype.h>

using namespace std;

//DEFINICAO DA SUPERCLASSE PESSOA
class Pessoa{
private:
    char *nome;
    char *bi;
public:
    Pessoa (char* nome, char *bi);
    ~Pessoa();
    const char* carregaNome() const;
    const char* carregaBi()const;
    void lerDadoPessoa( char *nome, char *bi);
    
};
//fim da definicao da classe

Pessoa::Pessoa (char * nome_p, char *n_bi)
{
    bi = new char[strlen(n_bi)+1];//criar espaço para o nome
    nome = new char[strlen(nome_p)+1];//criar espaço 
    nome=nome_p;
    bi=n_bi;
    
}
Pessoa::~Pessoa(){
    cout << "\nPessoa " << bi<< "encerrada.";
    delete [] nome;
}

inline const char* Pessoa::carregaNome() const{
    return nome;
}

inline const char* Pessoa::carregaBi() const{
    return bi;
}

void MostraPessoa(Pessoa &);//função prototipo
Pessoa * criaPessoa();

void MostraPessoa(Pessoa &pess)
{
    cout << "\n\nNome da Pessoa: " << pess.carregaNome();
    cout << "\n\nNumero de Bilhete de Identidade: " << pess.carregaBi();
}

int main()
{
    cout<< setprecision(2)
         << setiosflags(ios::fixed)
         << setiosflags(ios::showpoint);
    Pessoa* pess_tab[10];

    int count=0, i;
    char resposta;

    cout <<"\n\nDeseja inserir uma pessoa? (S/N): ";
    resposta=cin.get();
    cin.get();

    while (toupper(resposta)=='S' && count < 10 )
    {
        pess_tab[count]=criaPessoa();
        ++count;
        cout <<"\n\nDesja cria mais uma Pessoa? (S/N): ";
        resposta=cin.get();
        cin.get();
    }

    for (int i=0; i<count; ++i)
        MostraPessoa(*pess_tab[i]);

    /*for (i=0;i<count;++i)
        delete pess_tab[i];
    */
    return 0;
}

Pessoa * criaPessoa()
{
    char buffer[81];
    char id[10];
    Pessoa* p_ptr;

    cout << "\n\n Insira o Nome: ";
    cin.getline (buffer, 81);

    cout<<"\n\n Insira o Nu'mero de BI: ";
    cin.getline (id, 10);

    cin.get();//limpa o buffer de input de dados

    p_ptr = new Pessoa(buffer, id);

    return p_ptr;
}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...