1. 8.Clases y objetos en C++
Un análisis más detallado
Ramiro Estigarribia Canese
2. ¿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.
3. Estructura de una Clase
Debemos 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]
}
4. 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";
else
cout <<"Es Menor de Edad";
}};
int main()
{
Persona UnaPersona;
UnaPersona.inicializar();
UnaPersona.imprimir();
UnaPersona.EsMayor();
return 0;
}
Bajar Código Aquí
5. 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";
else
cout << "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
6. ¿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;
}
7. Colaboración de clases
Normalmente 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.
8. 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.
9. #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
10. ¿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.
11. 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.
12. 4.Ejemplo: Puntero y valor.
#include <iostream>
using namespace std;
int main()
{
int valor; // valor es un entero
int *puntero; // puntero
valor = 7; // se asigna 7 a la variable
puntero = &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
13. 5.Número al Cubo.
#include <iostream>
using namespace std;
int cubo(int); // prototipo
int main()
{
int numero = 5;
cout << "El valor es " << numero;
numero = cubo(numero); // pasa el numero a cubo
cout << "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