02 Clases y objetos en C++

5
Metodología de la Programación M.Sc. Edelfré Flores Velásquez CLASES Y OBJETOS EN C++ 1. Clases Es un tipo de datos utilizado en la programación orientada a objetos, consiste en agrupar en una sola entidad, la clase, tanto datos como funciones que manipulan directamente dichos datos. Lo que contenga una clase será suficiente para que cualquier objeto de dicha clase pueda funcionar, sin que dependa de ningún otro dato o función externa a la clase. Sintaxis class nombre_clase { Datos miembro ………….. Funciones miembro ………….. }; class <identificador de clase> [<:lista de clases base>] { <lista de miembros> } [<lista de identificadores de objetos>]; Los miembros de una clase pueden tener especificadores de acceso quienes especifican el alcance del acceso a los miembros. Estos pueden ser: Public (publicos), los miembros public pueden ser accesibles desde cualquier parte del programa donde sea accesible un objeto de la calase declarada. Private (privados), los miembros private, solamente son accesibles por las funciones miembro dentro de la misma clase. Protected (protegidos), los miembros protected se comportan como privados pero además si son accesibles por las funciones miembro de las clases derivadas. Ejemplo: Clase suma class suma { private: float x, y; public:

description

02 Clases y objetos en C++

Transcript of 02 Clases y objetos en C++

Page 1: 02 Clases y objetos en C++

Metodología de la Programación M.Sc. Edelfré Flores Velásquez

CLASES Y OBJETOS EN C++

1. Clases

Es un tipo de datos utilizado en la programación orientada a objetos, consiste en agrupar

en una sola entidad, la clase, tanto datos como funciones que manipulan directamente

dichos datos. Lo que contenga una clase será suficiente para que cualquier objeto de

dicha clase pueda funcionar, sin que dependa de ningún otro dato o función externa a la

clase.

Sintaxis

class nombre_clase {

Datos miembro

…………..

Funciones miembro

…………..

};

class <identificador de clase> [<:lista de clases base>] {

<lista de miembros>

} [<lista de identificadores de objetos>];

Los miembros de una clase pueden tener especificadores de acceso quienes especifican

el alcance del acceso a los miembros. Estos pueden ser:

Public (publicos), los miembros public pueden ser accesibles desde cualquier parte del

programa donde sea accesible un objeto de la calase declarada.

Private (privados), los miembros private, solamente son accesibles por las funciones

miembro dentro de la misma clase.

Protected (protegidos), los miembros protected se comportan como privados pero

además si son accesibles por las funciones miembro de las clases derivadas.

Ejemplo:

Clase suma

class suma {

private:

float x, y;

public:

Page 2: 02 Clases y objetos en C++

Metodología de la Programación M.Sc. Edelfré Flores Velásquez

void muestraValores();

};

Desarrollo de sus funciones miembro

Se debe implementar cada función miembro y se realiza teniendo en cuenta la siguiente

sintaxis:

Tipo_resultado nombre_clase :: nombre_función {

Implementación;

}

2. Objetos

Es la variable cuyo tipo de dato es una clase. Es a través del objeto que se pueden utilizar las

funciones de la clase, por tanto es el objeto quien pone en funcionamiento a una clase.

Declaración de un objeto de una clase:

Nombre_clase nombre_objeto;

Ejemplo:

suma sum1; //declara el objeto sum1 del tipo de la clase suma.

Acceso a las funciones miembro de una clase:

Nombre_objeto.nombre_funcion();

3. Constructor de una clase

Los constructores son funciones miembro especiales que sirven para inicializar un

objeto de una determinada clase al mismo tiempo que se declara.

Los constructores son especiales por varios motivos:

Tienen el mismo nombre que la clase a la que pertenecen.

No tienen tipo de retorno, y por lo tanto no retornan ningún valor.

No pueden ser heredados.

Por último, deben ser públicos, no tendría ningún sentido declarar un constructor

como privado, ya que siempre se usan desde el exterior de la clase, ni tampoco

como protegido, ya que no puede ser heredado.

Sintaxis:

class <identificador de clase> {

Page 3: 02 Clases y objetos en C++

Metodología de la Programación M.Sc. Edelfré Flores Velásquez

public:

<identificador de clase>(<lista de parámetros>) [: <lista de constructores>] {

<código del constructor>

}

...

}

Si no definimos un constructor el compilador creará uno por defecto, sin parámetros, que

no hará absolutamente nada. Los datos miembros de los objetos declarados en el

programa contendrán basura.

Si una clase posee constructor, será llamado siempre que se declare un objeto de esa

clase. Si ese constructor requiere argumentos, como en este caso, es obligatorio

suministrarlos.

EJERCICIOS DE PROGRAMACION RESUELTOS

1. Hallar el área de un cuadrado con clases

#include <iostream>

using namespace std;

float x;

class cuadrado {

private:

float lado;

public:

float calcular_area(float lado);

};

float cuadrado::calcular_area(float lado) {

return (lado*lado);

}

int main(int argc, char *argv[]) {

cuadrado c1;

cout<<"ingrese el lado del cuadrado: ";

cin>>x;

cout<<"El area del cuadrado es: "<<c1.calcular_area(x);

return 0;

}

Page 4: 02 Clases y objetos en C++

Metodología de la Programación M.Sc. Edelfré Flores Velásquez

2. Pide el nombre y la edad de una persona.

#include <iostream>

using namespace std;

class persona{

public:

char nombre[20];

int edad;

};

int main(int argc, char *argv[]) {

// objeto persona

persona per1;

cout<<"Ingrese el nombre: ";

cin>>per1.nombre;

cout<<"Ingrese la edad: ";

cin>>per1.edad;

cout<<"\nNombre: "<<per1.nombre;

cout<<"\nEdad: "<<per1.edad<<"\n\n";

return 0;

}

Modifique en el programa para que los datos miembro sean privados.

¿Cómo debería ahora manipularse los datos miembro?

3. Volumen de un cubo

#include <iostream>

using namespace std;

int a, b, c;

class cubo {

private:

int altura, ancho, profundo;

public:

// Constructor de la clase cubo

cubo(int h, int a, int p){

altura=h; ancho=a; profundo=p;

}

// funcion miembro: calcula el volumen

int volumen(void){

Page 5: 02 Clases y objetos en C++

Metodología de la Programación M.Sc. Edelfré Flores Velásquez

return (altura*ancho*profundo);

}

};

int main(int argc, char *argv[]) {

cout<<"Ingrese la Altura: ";

cin>>a;

cout<<"Ingrese el Ancho: ";

cin>>b;

cout<<"Ingrese la Profundidad: ";

cin>>c;

// objeto cubo con los valores del constructor

cubo cubo1(a,b,c);

cout<<"El volumen del cubo es: "<<cubo1.volumen()<<endl;

return 0;

}

Ejercicios:

1) Implementa un programa con clases y objetos para que halle las raíces de una ecuación

de segundo grado de la forma:

Ax2 + Bx + C = 0

2) Implementa un programa con clases y objetos para que halle el promedio de N notas

generadas aleatoriamente, de un estudiante, el programa debe mostrar las notas

generadas y el promedio.

3) Implementa una clase llamada Password que siga las siguientes condiciones:

Que tenga los atributos longitud y contraseña. Por defecto, la longitud será de 8.

Los métodos que implementa serán:

esFuerte(): devuelve un booleano si es fuerte o no, para que sea fuerte debe tener más

de 2 mayúsculas, mas de 1 minúscula y mas de 5 números.

generarPassword(): genera la contraseña del objeto con la longitud que tenga.