#include <iostream>

class conjunto {
   static const int min = 0;        // variable compartida por todos los objetos (vive fuera de ellos)
   static const int max = 99;       // variable compartida por todos los objetos (vive fuera de ellos)

public:
   static int minimo_posible( ) {   // función que sólo puede consultar las variables compartidas
      return min;
   }

   static int maximo_posible( ) {   // función que sólo puede consultar las variables compartidas
      return max;
   }
};

int main( ) {
   std::cout << sizeof(conjunto) << "\n";    // no contemplará la memoria de los dos ints estáticos, porque
                                             // estos viven fuera de los objetos y se comparten por todos
   conjunto c;
   std::cout << c.maximo_posible( ) << "\n";          // se puede usar la notación   objeto.miembro_estatico
   std::cout << conjunto::maximo_posible( ) << "\n";  // se puede usar la notación   tipo::miembro_estatico
}
