Professional Documents
Culture Documents
Clases y Objetos
Atributos y Operaciones
Atributos son las caractersticas comunes entre
todas las instancias de un clase
LSD
Ejemplos:
Carro
Marca
Modelo
Ao de matrcula
Potencia
Acelerar( )
Frenar ( )
Girar ( )
Jugador de
Baloncesto
Perro
Nombre
Edad
Peso
Altura
Nombre
Altura
Peso
Edad
Correr( )
Dormir ( )
Ladrar ( )
Lanzar( )
Saltar ( )
DarPase ( )
LSD
int peso;
char nombre[30];
int edad;
float altura;
Operaciones
Atributos
};
Perro tevito,pluto;
7
Encapsulacin
Encapsulacin es el acto de ocultar los detalles
de implementacin de una clase de los usuarios
de la clase.
Los usuarios de una clase slo deberan
interactuar con la clase a travs de su interfaz.
Clases derivadas
X
X
Otros
private:
int peso;
char nombre[30];
int edad;
float altura;
public:
void Correr(int tiempo);
void Ladrar( int tono );
void Dormir( int cantidad );
};
10
Clase Auto
class Auto {
private:
string marca;
int
numPuertas;
int
numCilindros;
int
sizeMotor;
public:
Auto();
void entrada();
void set_numPuertas( int puertas );
void despliegue();
int get_numPuertas();
};
12
Clase Automvil
class Auto {
private:
string marca;
int
numPuertas;
int
numCilindros;
int
sizeMotor;
public:
Automovil();
// private data
// public functions
// constructor
void entrada();
// mutador
void set_numPuertas( int puertas); // mutador
void despliegue();
// accesor
int get_numPuertas();
// accesor
~Auto();
// Destructor
};
14
Creacin de Objetos
Cuando declaramos una variable usando una clase
como su tipo de dato, estamos creando una
instancia de la clase.
Una instancia de una clase es tambin llamada un
objeto u objeto clase (ej. objeto carro)
En el prximo ejemplo creamos un objeto Auto y
llamamos a sus funciones miembros.
Ejemplo...
15
}
16
Constructores
Un constructor es una funcin que tiene el mismo nombre
de la clase. Puede aparecer varias veces con distinta lista
de parmetros.
Un constructor se ejecuta cuando el objeto es creado, es
decir tan pronto es definido en el programa. Ej. Cuando la
funcin es llamada en el caso de datos locales, antes de
la funcin main() en el caso de objetos globales.
Un default constructor no tiene parmetros.
Los constructores usualmente inicializan los miembros
datos de la clase.
Si definimos un arreglo de objetos, el constructor por
defecto es llamado para cada objeto:
Perro varios[50];
// constructor 50 veces
17
Implementacin de Constructores
Un constructor por defecto para la clase Punto
podra inicializar X e Y:
class Punto {
private:
int m_X;
int m_Y;
public:
Punto() {
// funcin inicializa
m_X = 0;
m_Y = 0;
}
};
18
Funciones Out-of-Line
Todas las funciones miembro deben ser declaradas
(su prototipo) dentro de la definicin de una clase.
La implementacin de funciones no triviales son
usualmente definidas fuera de la clase y en un
archivo separado.
Por ejemplo para el constructor Punto:
Punto::Punto()
{
m_X = 0;
m_Y = 0;
}
Los :: le permite al compilador saber que
estamos definiendo la funcin Punto de la
clase Punto. Este tambin es conocido como
operador de resolucin de alcance.
19
Clase Auto
class Auto {
private:
string marca;
int
numPuertas;
int
numCilindros;
int
sizeMotor;
public:
Auto();
void entrada();
void set_numPuertas( int puertas);
void despliegue();
int get_numPuertas();
};
20
void Auto::Entrada()
{
cout << Ingrese la marca: ";
cin >> marca;
cout << Cuantas puertas? ";
cin >> numPuertas;
cout << Cuantos cilindros? ";
cin >> numCilindros;
cout << size Motor? ";
cin >> sizeMotor;
}
22
23
Invocando a un Constructor
24
Implementacin de un Constructor
25
// ??
// ??
26
Lista de Inicializacin
Usamos una lista de inicializacin para definir los
valores de las miembros datos en un constructor..
Esto es particularmente til para miembros objetos y
miembros constantes :
Auto::Automobile( string p_marca, int puertas,
int cilindros, int sizeMoto ) :
marca(p_marca),
numPuertas(puertas),
numCilindros(cilindros),
sizeMotor(sizeMoto)
{
}
27
s = string
n = numeric
b = boolean
p = pointer
28
private:
string
int
int
int
};
m_strMarca;
m_nNumPuertas;
m_nNumCilindros;
m_nSizeMotor;
Uso de Const
Siempre usamos el modificador const cuando
declaramos miembros funciones si la funcin no
modifica los datos del objeto:
void desplegar() const;
La funcin garantiza
que no modificar el
parmetro
void ShowAuto( const Auto & aCar )
{
cout << Ejemplo de un automovil: ";
aCar.desplegar();
cout << "--------------------------\n";
}
Qu tal si la funcin
desplegar() no est
definida como funcin
constante?
31
Fin
33