Advertisement
Guest User

Untitled

a guest
Dec 10th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.31 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. enum EstadoPossivel {ligada, desligada};
  5.  
  6. class Lampada {
  7.  
  8.     EstadoPossivel estado;
  9.     string tipo;
  10.     string cor;
  11.  
  12.     Lampada(string cor, string tipo, EstadoPossivel estado) {
  13.         this->cor = cor;
  14.         this->tipo = tipo;
  15.         this->estado = estado;
  16.     }
  17. public:
  18.     Lampada() { // construtor default
  19.         estado = desligada;
  20.         cor = "branco";
  21.     }
  22.  
  23.     Lampada(string cor) {
  24.         this->cor = cor;
  25.     }
  26.  
  27.     ~Lampada() {
  28.         cout << "Chamada do destrutor." << endl;
  29.     }
  30.  
  31.     void exibeStatus() {
  32.         if (estado == ligada)
  33.             cout << "Lampada ligada" << endl;
  34.         else
  35.             cout << "Lampada desligada" << endl;
  36.  
  37.         cout << "Cor da lampada: " << cor << endl;
  38.     }
  39.  
  40.     void desliga() {
  41.         estado = desligada;
  42.     }
  43.  
  44.     void liga()
  45.     {
  46.         estado = ligada;
  47.     }
  48.  
  49.     Lampada instanciar(string cor, string tipo, EstadoPossivel estado) {
  50.         return Lampada(cor, tipo, estado);
  51.     }
  52.  
  53. };
  54.  
  55. int main() {
  56.     Lampada lamp; // cria um objeto da classe Lampada
  57.     lamp.exibeStatus();
  58.     lamp.liga();
  59.  
  60.     lamp.exibeStatus ();
  61.     lamp.desliga();
  62.     lamp.exibeStatus ();
  63.  
  64.     Lampada lamps[3];
  65.     lamps[0].exibeStatus();
  66.  
  67.     Lampada genio("verde");
  68.     genio.exibeStatus();
  69.  
  70.     Lampada djin;
  71.  
  72.     djin = djin.instanciar("azul", "LED", ligada);
  73.  
  74.     djin.exibeStatus();
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement