8.clases y objetos en c++

13
8.Clases y objetos en C++ Un análisis más detallado Ramiro Estigarribia Canese

Upload: ramiro-estigarribia-canese

Post on 21-Jul-2015

139 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: 8.clases y objetos en c++

8.Clases y objetos en C++Un análisis más detallado

Ramiro Estigarribia Canese

Page 2: 8.clases y objetos en c++

¿Qué es una Clase?➔ La programación orientada a objetos se basa en las

clases.➔ Una clase es un molde del que luego se pueden

crear múltiples objetos, con similares características.

➔ Una clase es una plantilla (molde), que define atributos (variables) y métodos (funciones).

➔ La clase define los atributos y métodos comunes a los objetos de ese tipo, pero luego, cada objeto tendrá sus propios valores.

Page 3: 8.clases y objetos en c++

Estructura de una ClaseDebemos crear una clase antes de poder crear objetos (instancias) de esa clase. Al crear un objeto de una clase, se dice que se crea una instancia de la clase o un objeto.

La estructura de una clase es:class [nombre de la clase] { [atributos o variables de la clase] [métodos o funciones de la clase]}

Page 4: 8.clases y objetos en c++

1.Clase Persona.#include <iostream>using namespace std;class Persona {public:char Nombre[30];int Edad;void inicializar() {cout <<"Ingrese Nombre y Edad"<<endl;cin >> Nombre >> Edad;}void imprimir() {cout << "Nombre:" << Nombre << endl ;cout << "Edad:" << Edad << endl;}

void EsMayor() {if (Edad>=18)cout <<"Es Mayor de Edad";elsecout <<"Es Menor de Edad";}};int main(){Persona UnaPersona;UnaPersona.inicializar();UnaPersona.imprimir();UnaPersona.EsMayor();return 0;}

Bajar Código Aquí

Page 5: 8.clases y objetos en c++

Clase Triángulo Equilátero.

//2.Lados de un triángulo.//Identifica el lado Mayor.//Identifica si es Equilátero.#include <iostream>

using namespace std;class Triangulo {public:int lado1,lado2,lado3;

void inicializar() {cout << "Medida lado 1:";cin >> lado1;cout << "Medida lado 2:";cin >> lado2;cout << "Medida lado 3:";cin >> lado3;}

void ladoMayor() {cout << "Lado mayor:";if (lado1>lado2 && lado1>lado3)cout << lado1;else if (lado2>lado3)cout << lado2;else cout << lado3; }

void esEquilatero() {if (lado1==lado2 && lado1==lado3)cout << "\nEs equilátero";elsecout << "\nNo es equilátero"; }};

int main() {Triangulo triangulo1;triangulo1.inicializar();triangulo1.ladoMayor();triangulo1.esEquilatero();return 0; }

2.Clase Triángulo. Bajar Código: https://paste.ee/p/lLDEa

Page 6: 8.clases y objetos en c++

¿Qué es un Constructor?Es un un método que se ejecuta al inicio de forma automática, y que sirve para inicializar un objeto.Características:1. Tiene el mismo nombre de la clase.2. No puede retornar datos.3. Se ejecuta una única vez.Ejemplo:public MismoNombreQueLaClase (tipo parámetro1, ...tipo parámetro n) { campo1 = valor o parámetro; . campo n = valor o parámetro;}

Page 7: 8.clases y objetos en c++

Colaboración de clasesNormalmente un problema resuelto con la metodología de programación orientada a objetos no interviene una sola clase, sino que hay muchas clases que interactúan y se comunican.

Plantearemos un problema separando las actividades en dos clases.Ejemplo:➔ Un banco tiene 3 clientes que pueden hacer

depósitos y extracciones. ➔ El banco requiere al final saber el total de dinero.

Page 8: 8.clases y objetos en c++

3. Clase Cliente y Banco. Atributos y Métodos.

Cliente atributos nombre monto métodos depositar extraer

Banco atributos 1 Cliente métodos operar

Pasos para ejecutar el ejemplo:1. Crear un Proyecto: Banco, copiar el primer código.2. Hacer click en NewFile, elegir Java, y nombre:Cliente: Aquí copiar el 2do. código.

Page 9: 8.clases y objetos en c++

#include <iostream>using namespace std;class Cliente {public:int monto;char nombre[30];void depositar(int m) {monto=monto+m; }void extraer(int m) {monto=monto-m; }void imprimir(void) {cout << nombre << " tiene depositado " << monto; } };

class Banco {public:Cliente cliente1;Banco() {cout << "Ingrese el Nombre y el Monto Inicial: ";cin >> cliente1.nombre;cin >> cliente1.monto; }void operar() {cliente1.depositar (70);cliente1.extraer (30);cliente1.imprimir(); } };

int main(){Banco banco1;banco1.operar();return 0;}

https://paste.ee/p/EidfR

Page 10: 8.clases y objetos en c++

¿Qué es un Puntero?➔ Un puntero es una variable que da referencia a una

región de memoria; en otras palabras es una variable cuyo valor es una dirección de memoria.

➔ Si se tiene una variable A de tipo puntero que contiene una dirección de memoria en la que se encuentra almacenado un valor B se dice que A apunta a B.

➔ El programador utilizará punteros para guardar datos en memoria en muchas ocasiones.

Page 11: 8.clases y objetos en c++

Operadores de Punteros➔ El operador dirección ( & ) obtiene la dirección de

memoria de su operando.

Por ejemplo, teniendo en cuenta las declaraciones:➔ int x = 5; // declara la variable ➔ int *Puntero; // declara la variable apuntador.

Entonces, se dice que Puntero apunta a x.

Page 12: 8.clases y objetos en c++

4.Ejemplo: Puntero y valor.#include <iostream>using namespace std;int main(){int valor; // valor es un enteroint *puntero; // punterovalor = 7; // se asigna 7 a la variablepuntero = &valor; // se asigna la dirección al Puntero.cout << "La direccion de valor es " << &valor << endl;cout << "El valor del puntero es " << puntero << endl;cout << "El valor de valor es " << valor << endl;cout << "El valor de *Puntero es " << *puntero << endl;return 0; // indica que terminó correctamente} // fin de main

Page 13: 8.clases y objetos en c++

5.Número al Cubo.#include <iostream>using namespace std;int cubo(int); // prototipoint main(){int numero = 5;cout << "El valor es " << numero;numero = cubo(numero); // pasa el numero a cubocout << "\nEl nuevo valor es " << numero << endl;return 0; // indica que terminó correctamente} // fin de main

int cubo(int n) // calcula y devuelve el cubo{return n*n*n; // eleva al cubo} // fin de la función cubo