//----------------------------------------------------------
// programa demo de C++
// versao #2:  construtores em C++
// preparado para MAC441, 2do sem. 1998, MAC-IME-USP
// Hernan Astudillo

//----------------------------------------------------------
#include <iostream.h>

//----------------------------------------------------------
class Pessoa {
   private:
      char* nome;
      int rg;
   public:
      // construtor
      Pessoa()
        {
	    cout << "** ingresse dados de pessoa:" << endl;
	    nome = new char[20];
	    cout << "nome?";
	    cin >> nome;
	    cout << "rg?";
	    cin >> rg;
	};//construtor de Pessoa
      // metudo (member) para mostrar os valores da pessoa
      bool mostrar_tudo(){
	  cout << "** dados da pessoa:" << endl;
	  cout << "nome=" << nome << endl;
	  cout << "rg=" << rg << endl;
      }; //apresentar
}; //Pessoa

//----------------------------------------------------------
class Trabalhador {
   private:
      char* nome;
      int rg;
      float salario;
   public:
      // construtor
      Trabalhador()
	{
	    cout << "** ingresse dados de trabalhador:" << endl;
	    nome = new char[20];
	    cout << "nome?";
	    cin >> nome;
	    cout << "rg?";
	    cin >> rg;
	    cout << "salario?";
	    cin >> salario;
	};//construtor de Trabalhador
      // metudo (member) para mostrar os valores da trabalhador
      bool mostrar_tudo(){
	  cout << "** dados de trabalhador:" << endl;
	  cout << "nome=" << nome << endl;
	  cout << "rg=" << rg << endl;
	  cout << "salario=" << salario << endl;
      }; //apresentar
}; //Pessoa

//----------------------------------------------------------
class Estudiante {
   private:
      char* nome;
      int rg;
      float numUSP;
   public:
      // construtor
      Estudiante()
	{
	    cout << "** ingresse dados de estudiante:" << endl;
	    nome = new char[20];
	    cout << "nome?";
	    cin >> nome;
	    cout << "rg?";
	    cin >> rg;
	    cout << "numUSP?";
	    cin >> numUSP;
	};//construtor de Estudiante
      // metudo (member) para mostrar os valores da trabalhador
      bool mostrar_tudo(){
	  cout << "** dados de estudiante:" << endl;
	  cout << "nome=" << nome << endl;
	  cout << "rg=" << rg << endl;
	  cout << "numUSP=" << numUSP << endl;
      }; //apresentar
}; //Estudiante

//----------------------------------------------------------
class Monitor {
   private:
      char* nome;
      int rg;
      float numUSP;
      float salario;
   public:
      // construtor
      Monitor()
	{
	    cout << "** ingresse dados de trabalhador:" << endl;
	    nome = new char[20];
	    cout << "nome?";
	    cin >> nome;
	    cout << "rg?";
	    cin >> rg;
	    cout << "numUSP?";
	    cin >> numUSP;
	    cout << "salario?";
	    cin >> salario;
	};//construtor de Monitor
      // metudo (member) para mostrar os valores da trabalhador
      bool mostrar_tudo(){
	  cout << "** dados de trabalhador:" << endl;
	  cout << "nome=" << nome << endl;
	  cout << "rg=" << rg << endl;
	  cout << "numUSP=" << numUSP << endl;
	  cout << "salario=" << salario << endl;
      }; //apresentar
}; //Monitor

//----------------------------------------------------------
main (){
    Pessoa* p = new Pessoa;
    Trabalhador* t = new Trabalhador;
    Estudiante* e = new Estudiante;
    Monitor* m = new Monitor;
    p->mostrar_tudo();
    t->mostrar_tudo();
    e->mostrar_tudo();
    m->mostrar_tudo();
};
//----------------------------------------------------------
