Clases , Objetos y Métodos
En ANSI C las funciones son algo relativamente independiente de las variables, y constituyen el
centro del lenguaje. Se dice por eso que C es un lenguaje algorítmico (o procedural, en inglés).
Cualquier función se puede comunicar con las demás a través de variables globales, del valor de
retorno y de los argumentos, pasados por valor o por referencia. Esta facilidad para comunicarse
con otras funciones hace que se puedan producir efectos laterales no deseados.
En un Lenguaje Orientado a Objetos tal como el C++, el centro del lenguaje no son las
funciones sino los datos, o más bien los objetos, que contienen datos y funciones concretas que
permiten manipularlos y trabajar sobre ellos. Esto hace que la mentalidad con la que se aborda la
realización de un programa tenga que ser muy diferente.
Para proteger a las variables de modificaciones no deseadas se introduce el concepto de
encapsulación, ocultamiento o abstracción de datos.
Los miembros de una clase se pueden dividir
en públicos y privados.
Los miembros públicos son aquellos a los que se puede acceder libremente
desde fuera de la clase. Los miembros privados, por el contrario, solamente pueden ser accedidos
por los métodos de la propia clase.
De ordinario una clase ofrece un conjunto de funciones públicas a través de las cuales se
puede actuar sobre los datos, que serán privados. Estas funciones o métodos públicos constituyen la
interface de la clase. De esta forma se garantiza que se hace buen uso de los objetos, manteniendo
la coherencia de la información. Esto sería imposible si se accediera libre e independientemente a
cada variable miembro. Al usuario le es suficiente con saber cómo comunicarse con un objeto, pero
no tiene por qué conocer el funcionamiento interno del mismo. En C++ los métodos de una clase
pueden ser funciones u operadores. Todo esto se estudiará en detalle más adelante.
Ejemplo de clase de un objeto celular
#ifndef CELULAR_H
#define CELULAR_H
#include <string>
using namespace std;
class celular:public telefono
{
protected:
std::string num_propio;
std::string num_otro;
public:
void llamar();
void setnum_propio();
void setnum_otro();
};
#endif
Para poder accesar a los atributos y métodos de esta clase se realiza un archivo .cpp
#include<iostream>
#include "celular.h"
using namespace std;
void celular::setnum_propio(){
cout<<"dame el numero"<<flush;
cin.ignore();
getline(cin,num_propio);
}
void celular::setnum_otro(){
cout<<"dame el numero"<<flush;
cin.ignore();
getline(cin,num_otro);
}
void celular::llamar(){
cout<<"llamando de ... "<<num_propio<<" a "<<num_otro<<endl;
}
Comentarios
Publicar un comentario
Hola que tal,dime tu opinión