Clases
Completion requirements
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”.