Clases

3. Ejemplo

# include <iostream>
using namespace std;
class Televisor 
{//Definimos la plantilla de propiedades y métodos de la clase Televisor.
  bool m_bEncedido; //miembros o propiedades de la clase, es privado
  unsigned int m_uiCanal;// la m_ indica que es un miembro o propiedad
  unsigned int m_uiVolumen; //miembro o propiedad 
  
  public: //los metodos y propiedades que continúan línea abajo son públicos
  //métodos publicos
  void Encender() {m_bEncedido=true;};//Defino el método dentro de la clase
  void Apagar(){m_bEncedido=false;};//Defino el método dentro de la clase    
  bool ModificarVolumen( unsigned int  uiVolumen);//método
  bool ModificarCanal ( unsigned int  uiCanal);//método
  unsigned int ConsultaVolumen ();//método
  unsigned int ConsultaCanal ();//método
} ; 
//Fin de definición de la clase Televisor
//Metodo de cambia de Canal,definido Fuera de Clase por eso el op. de ambito ::
bool Televisor::ModificarCanal ( unsigned int  uiCanal)
{
  if (m_bEncedido)
  	{m_uiCanal=uiCanal;return true;}
  else return false;    
}
//Metodo Cambia el Volumen,definido Fuera de Clase por eso el op. de ambito ::    
bool Televisor::ModificarVolumen ( unsigned int  uiVolumen)
{
  if (m_bEncedido)
    {m_uiVolumen=uiVolumen;return true;}
  else return false;    
}
//Metodo Consulta el Volumen,definido Fuera de Clase por eso el op. de ambito ::    
unsigned int Televisor :: ConsultaVolumen ()
{return m_uiVolumen;}

//Metodo Consulta el Canal,,definido Fuera de Clase por eso el op. de ambito ::    
unsigned int Televisor :: ConsultaCanal ()        
{return m_uiCanal;}

//Comienza la Funcion main------------------------        
int main()
{
  char opcion; int volumen, canal;
  Televisor tv14p; //Instancio el objeto tv14p con la clase Televisor
  do
  	{
        cout << " Indique la acción :" << endl;
        cout << " 1 para Encender" << endl;
        cout << " 0 para Apagar" << endl;
        cout << " 2 Para modificar el Volumen" << endl;
        cout << " 3 Para modificar el Canal "<< endl;    
        cout << " Otra tecla para Salir "<< endl;    
        cin >> opcion;
        switch (opcion)
          {
          case '1': tv14p.Encender();break;//Enciendo el televisor 
          >    case '0': tv14p.Apagar();break ;//Apago el televisor 
          case '2': cout << "EL volumen esta en: "<< tv14p.ConsultaVolumen();
          cout << "Ingrese el nuevo valor del Volumen: "<< endl;
          cin >> volumen;
          tv14p.ModificarVolumen(volumen);break;
          case '3': cout << "EL Canal actual esta en: " << tv14p.ConsultaCanal();
          cout << "Ingrese el nuevo valor del Canal: " << endl;
          cin >> canal;
          >              tv14p.ModificarCanal(canal);break;
          >
          }
     }while ('0'==opcion||'1'==opcion||'2'==opcion||'3'==opcion);    
      return 0;

    }
    

Observaciones:

-Vemos que para alterar las propiedades privadas recurrimos a métodos , por ejemplo Enceder , Apagar , estos alteran la propiedad privada llamada  m_bEncendido.

-Si corremos el código y consultamos el valor del canal y del volumen antes de asignar algún valor veremos que el mismo contiene BASURA , veremos mas adelante que exiten métodos o funciones para inicializar el objeto , estos son conocidos como “CONSTRUCTORES”.