Definición de una clase
Una clase está formada por:
* Atributos
* Métodos
Al definir una clase se establecen tres grados de seguridad para sus miembros:
* Privados: Se utiliza para definir los atributos, en casos muy especiales algunos métodos de la clase. Los miembros definidos en esta sección solo pueden acceder por miembros de la misma clase. La privacidad permite garantizar la protección de los atributos y métodos definidos en esta sección.
* Protegido: En esta sección se definen los atributos y métodos que se comparten con las clases derivadas. Es decir los miembros de la clase definidos en esta sección solo pueden ser accedidos por miembros de la misma clase o sus clases derivadas.
* Público: En esta sección se definen los atributos y métodos que están disponibles para cualquier clase (ya sea derivada o externa)
Sintaxis.
Class Nombre
{
private:
//Atributos y métodos de la clase
protected:
//Atributos y métodos de la clase
public:
//Atributos y métodos de la clase
};
Ejemplo.
class Persona
{
private: //Atributos
char Nombre[60], Domicilio[60];
int Edad;
public: //Métodos
void Actualiza_Domicilio (char NuevoDom[]);
};
Una clase es un conjunto de objetos que comparten una estructura y comportamiento comunes. Las clases actúan como intermediarias entre una abstracción y los clientes que pretenden utilizar la abstracción. De esta forma, la clase muestra:
* Visión externa de comportamiento (interface), que enfatiza la abstracción escondiendo su estructura y secretos de comportamiento.
* Visión interna (implementación), que abarca el código que se ofrece en la interface de la clase.
Relaciones entre clases: Representan tipos de compartición entre clases, o relaciones semánticas.
* Asociación. Indica relaciones de mandato bidireccionales (Punteros ocultos en C++). Conlleva dependencia semántica y no establece una dirección de dependencia. Tienen cordialidad.
* Herencia. Por esta relación una clase (subclase) comparte la estructura y/o comportamiento definidos en una (herencia simple) o más (herencia múltiple) clases, llamadas superclases.
* Agregación. Representa una relación del tipo "tener un" entre clases. Cuando la clase contenida no existe independientemente de la clase que la contiene se denomina agregación por valor y además implica contenido físico, mientras que si existe independientemente y se accede a ella indirectamente, es agregación por referencia.
* Uso. Es un refinamiento de la asociación donde se especifica cual es el cliente y cual el servidor de ciertos servicios, permitiendo a los clientes acceder sólo a las interfaces públicas de los servidores, ofreciendo mayor encapsulación de la información.
* Ejemplificación. Se usa en lenguajes que soportan generosidad (declaración de clases parametrizadas y argumentos tipo témplate). Representa las relaciones entre las clases parametrizadas, que admiten parámetros formales, y las clases obtenidas cuando se concretan estos parámetros formales, ejemplificados o inicializados con un ejemplo.
Objetos
Un objeto es una cosa tangible, algo a que se puede aprehender intelectualmente o algo hacia lo que se puede dirigir una acción o pensamiento. Un objeto representa un ítem individual e identificable, o una entidad real o abstracta, con un papel definido en el dominio del problema. Un objeto tiene:
1. Estado
2. Comportamiento
3. Identidad
La estructura y el comportamiento de objetos similares se definen en sus clases comunes. El término objeto e instancia de una clase son intercambiables.
El estado de un objeto abarca todas las propiedades del objeto, y los valores actuales de cada una de esas propiedades. Las propiedades de los objetos suelen ser estáticas, mientras los valores que toman estas propiedades cambian con el tiempo.
El hecho de que los objetos tengan estado implica que ocupan un espacio, ya sea en el mundo físico, o ya sea en la memoria del ordenador. El estado de un objeto está influido por la historia del objeto.
No deben confundirse los objetos, que existen en el tiempo, son mutables, tienen estado, pueden ser creados, destruidos y compartidos..., con los valores (los asignados a una variable, por ejemplo) que son cantidades con las propiedades de ser atemporales, inmutables. El estado de un objeto representa el efecto acumulado de su comportamiento.
Identidad es la propiedad de un objeto que lo lleva a distinguirse de otros.
Comportamiento es como un objeto actúa y reacciona, en términos de sus cambios de estado y de los mensajes que intercambia. Un objeto puede realizar cinco tipos de operaciones sobre otro, con el propósito de provocar una reacción:
* Modificador: altera el estado de un objeto.
* Selector: accede al estado de un objeto, sin alterarlo.
* Iterado: permite a todas las partes de un objeto ser accedidas en un orden.
* Constructor: crea un objeto y/o inicializa su estado.
* Destructor: libera el estado de un objeto y/o destruye el objeto.
C++ soporta, además de las operaciones, subprogramas libres. En la terminología de C++ las operaciones que un cliente puede realizar sobre un objeto se declaran como función miembro.
Estructuras.
Es una colección de una o más variables agrupadas bajo un mismo nombre para facilitar su manejo, cada uno de los cuales se conoce como un elemento o miembro de la estructura.
Una estructura puede contener cualquiera de los tipos de dato de c (float, double, int, char, long, etc.) incluyendo arreglos y otras estructuras.
Sintaxis.
La forma general de una definición de estructura es:
struct Etiqueta
{
tipo nombre_variable1;
tipo nombre_variable2;
tipo nombre_variable3;
……
}variables_de_estructura;
Ejemplo.
struct dir //Etiqueta de la clase
{
char nombre[30];
char calle[40];
char ciudad[20];
char estado[30];
unsigned long int codigo;
}info_dir,binfo,cinfo; //Instancias o variables tipo dir
Las estructuras de datos se emplean con el objetivo principal de organizar los datos contenidos dentro de la memoria del ordenador. Así, nuestra primera experiencia con estructuras comienza desde el momento mismo en que usamos en nuestros programas variables de tipos primitivos (char, short, int, float, etc).
Ejercicios.
NOTACION APUNTADOR
#include<stdlib.h>
#include <iostream>
#define MAX 5
using namespace std;
int main()
{
int calif[MAX]={98,87,82,64,70};
int *g_ptr;
g_ptr=&calif[0];
for(int i=0;i<MAX;i++)
{
cout<<"Elemento "<<i<<"= "<<*(g_ptr+i)<<endl; //Notacion apuntador
}
system("pause");
return 0;
}
NOTACION ARREGLO
#include<stdlib.h>
#include <iostream>
#define MAX 5
using namespace std;
int main()
{
int calif[MAX]={98,87,82,64,70};
int *g_ptr;
g_ptr=&calif[0];
for(int i=0;i<MAX;i++)
{
cout<<"Elemento "<<i<<"= "<<g_ptr[i]<<endl; //Notacion arreglo
}
system("pause");
return 0;
}
NOTACION ARREGLO
#include <iostream>
#include <stdlib.h>
using namespace std;
int main ()
{
int numcalif,i;
cout<<"Introduzca el numero de califiaciones"<< endl;
cin>>numcalif;
int *ptr_calif;
ptr_calif = new int [numcalif];
for (i=0;i<numcalif;i++)
{
cout<<"Introdusca calificacion"<<endl;
cin>>ptr_calif[i];
}
cout<<"Se creo un arreglo para :"<<numcalif<<"numeros enteros"<<endl;
cout<<"Los valores almacenados en el arreglo son:"<<endl;
for (i=0;i<numcalif;i++)
{
cout<<ptr_calif[i]<<endl;
}
delete[] ptr_calif;
system("pause");
return 0;
}
MATRIZ ESTATICA
#include <iostream>
#include <stdlib.h>
#define FIL 3
#define COL 3
using namespace std;
{
Int Matriz A[FIL][COL]={3,6,1,7,9,-6,4,0,8};
for(int i=0;i<FIL;i++) //filas
{
for(int j=0;j<COL;j++) //columnas
{
Cout<<Matriz A[i][j]<<”\t”;
}
Cout<<endl;
}
system(“pause”);
return 0;
}
ESTRUCUTRAS DENTRO DE MAIN
*
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
struct
{
int mes;
int dia;
int anio;
}nacimiento; //Etiqueta
nacimiento.mes=12;
nacimiento.dia=28;
nacimiento.anio=86;
cout<<"Mi fecha de nacimiento es: "<<nacimiento.mes<<"/"<<nacimiento.dia<<"/"<<nacimiento.anio<<endl;
getch();
return 0;
}
*
#include <conio.h>
#include <iostream>
using namespace std;
struct nacimiento
{
int mes;
int dia;
int anio;
};
int main()
{
nacimiento fecha1; //Opcion 1
fecha1.mes=12;
fecha1.dia=28;
fecha1.anio=86;
cout<<"Mi fecha de nacimiento es: "<<fecha1.mes<<"/"<<fecha1.dia<<"/"<<fecha1.anio<<endl;
getch();
return 0;
}
*
#include <conio.h>
#include <iostream>
using namespace std;
const int NUMREG=5; //Numero maximo de registro
struct Reg_pago
{
int id;
char nombre[20];
double tarifa;
};
int main()
{
Reg_pago empleado[NUMREG]={{1,"Carlos",7.28},
{2,"Esther",6.80},
{3,"Antonio",10.50},
{4,"Eduardo",11.20},
{5,"Ana",12.30}};
cout<<"Empleados del mes: "<<endl;
cout<<"No."<<"/"<<"Nombre"<<"/"<<"Tarifa"<<endl;
for(int i=0;i<NUMREG;i++)
{
cout<<empleado[i].id<<"/"<<empleado[i].nombre<<"/"<<empleado[i].tarifa<<endl;
}
getch();
return 0;
}
Segunda opción.
#include <conio.h>
#include <iostream>
using namespace std;
struct nacimiento
{
int dia,mes,anio;
}fecha2;
int main()
{
fecha2.dia=13;
fecha2.mes=6;
fecha2.anio=2015;
cout<<"Fecha: "<<fecha2.mes<<"/"<<fecha2.dia<<"/"<<fecha2.anio<<endl;
getch();
return 0;
}
*
#include<iostream>
#include<stdlib.h>
#include<string.h>
using namespace std;
struct empleado
{
char nombre[30];
int edad;
float salario;
float horas_t;
empleado(char * nomb, int e, float s,float h)//constructor
{
strcpy(nombre,nomb);
edad=e;
salario=s;
horas_t=h;
}
void salida()
{
cout<<"NOMBRE---->"<<nombre<<endl;
cout<<"EDAD------>"<<edad<<endl;
cout<<"SALARIO--->"<<salario<<endl;
cout<<"HORAS -->"<<horas_t<<endl<<endl;
if (horas_t>8)
cout<<"Cubriendo horas extras"<<endl;
else
cout<<"Cubriendo horario regular"<<endl;
}
};
int main()
{
empleado empleado1("Juan",25,1000,5);
empleado1.salida();
system("pause");
return 0;
}
No hay comentarios.:
Publicar un comentario