Programacion

Solo disponible en BuenasTareas
  • Páginas : 8 (1863 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de noviembre de 2011
Leer documento completo
Vista previa del texto
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <string.h>
//Sobrecarga de apuntadores con memoria dinamica:
class arreglo
{
private:
float *x;
int y;

public:
float *apunt;//permite que el apuntadoreste en todas las FM es el que va a guardar la suma
arreglo(); //Const. por default
arreglo(int); //Const. alternativo para el tamaño del arreglo
arreglo(float *, int); //Const. copia
~arreglo();//Declaracion del destructor
arreglo & operator +(arreglo &);//sobrecarga del operador binario +
arreglo & operator =(arreglo &); //dobrecarga del operador asignacion =
void muestra_datos();
void datos (float *);

};

//Definicion de las funciones....
arreglo::arreglo()
{
x=new float [y]; //Permite inicializar al arreglo ademasreserva la memoria..
apunt=0;
}
//--------------------------------------------------------------------------------
arreglo::arreglo(int p)
{
y=p; // la variable p se le asigna a la parte privada...
x=new float[y]; //Se vuelve a reservar la memoria porque estamos trabajando con memoria dinamica
apunt=0;
}//-------------------------------------------------------------------------------
arreglo::arreglo(float *a, int b)
{
y=b;
x=new float[y];
for(int i=0; i<y; i++)
x[i]=a[i];
}
//---------------------------------------------------------------------------

arreglo::~arreglo()
{
cout<<"Objeto Destruido";
delete []x;
}//---------------------------------------------------------------------------
//Sobrecarga del operador binario +

arreglo &arreglo::operator +(arreglo&objeto)
{
apunt=new float[y]; //REserva de memoria del apuntador que esta en la parte publica
for(int i=0;i<y;i++)
//apunta y suma la parte privada y lo que hace el objeto.x[i] es que toma los ultimos datos cargados:
apunt[i]=x[i]+objeto.x[i];return *this;
}
//---------------------------------------------------------------------------
//Sobrecarga binario de asignacion =
arreglo &arreglo::operator =(arreglo&objeto )
{
for(int i=0;i<y;i++)
x[i]=objeto.apunt[i]; //asigna al apuntador de la parte privada los datos que hay en la suma


// a la cual esta apuntando elpauntador apunt de la parte publica
return *this;
}
//--------------------------------------------------------------------------------
//Agregar los elementos al arreglo
void arreglo:: datos(float *a)
{
for(int i=0;i<y;i++)
x[i]=a[i];
}
//imprimir
void arreglo:: muestra_datos()
{
for(int i=0;i<y;i++)
cout<<"El dato[ "<<i<<" ] del arreglo es : "<<x[i]<<endl;
cout<<endl;
}
//***************************************---------************************************
//main
void main(void)
{
float x[5]={1,2,3,4,5};
float y[5]={6,7,8,9,10};
arreglo a(5),b(5),c(5);//constructor alternativo es para el tamaño
a.datos(x); //fmiembro delparametro del apuntador
a.muestra_datos();
b.datos(y);
b.muestra_datos();
c=a+b;//Sobrecarga del operador binario + suma los dos objetos...
c.muestra_datos();
getch();
}
class avion //Declaracion de clase avion
{
private:
float peso;//Decalracion de variable en este caso peso
float anio;//Decalracion de variable en este caso anio
char...
tracking img