martes, 30 de agosto de 2011

Crear un vector dinamico

muchas veces en general al crear vectores o matrices tenemos problemas con la difinicon ya que al manejarlas como variables estaticas no se puede satisfacer todas las nesecidades que en algun programa se nos puedan presentar asi que para eso estan las variables de tipo dinamicas las cuales cambian durante el tiempo de ejecucion del programa , para esto usamos apuntadores las cuales son variables que almacenan direcciones de variables mas no datos.

ejemplo



/*este es un pequeño programa que explica ocmo crear un vector dianmico
atraves de new y delete
*/

#include <iostream.h>
#include <conio.h>

class vector//creamos la clase
{
int *a; //un apuntador sencillo por ser  un vector , recordemos que un apuntador se difine del mismo de las variables a las cuales va ha apuntar
int b,c;//definimos variables
public:
 //nesesariamente los destructores y constructores deben llevar el nombre de clase y el destructor debe llevar el simbolo de la negacion
 vector();//constructor para inicializar variables
 ~vector();//destructor para anularlas , siempre que se usen constructores se nesecita un destructor
 void leer(void);//funcion para ingresar datos
 void mostrar(void);//funcion para mostrar datos
};
vector::vector()//definicion del constructor  
{
 b=c=0; //se inicializan los valores, es decir darles el valor inicial de 0 que luego cambia en la ejcucion de este
 cout<<"digite el tamaño"<<endl;
 cin>>c;//se ingresa el tamaño del vector
 a=new int [c];
 //aqui construimos el vector al asignarselo al puntero con la intruccion new que significa que le dara un valor dinamico a el vector
 //siempre se debe usar este metodo con vectores
             
}

vector::~vector()//definicion del destructor
{
 delete a;//delete lo que hace es terminar con el uso de esta
}
void vector::leer(void)//definicion de ingresar datos
{
     //vemos las intrucciones tipicas para ingresar los datos de un vector
      for(int i=0;i<c;i++)
      {
      cout<<"digite el dato "<<i<<endl;
      cin>>a[i];
      }
   
}
void vector::mostrar(void)
{
      //vemos las intrucciones tipicas para mostrar un vector
      cout<<"los datos son "<<endl;
     for(int i=0;i<c;i++)
     {
 
     cout<<"  "<<a[i];
     }  
}

int main()
{
/*
Talves una pregunta que tengas es porque el constructor y destructor no se llaman
en el main  , pero aunque estas son funciones no nesecitan llamarse ni tampoco un orden de difinicon
ya que c/c++ ya sabe en que momento ejecutarla*/

vector objeto;//Esta es la creacion del objeto
//invocacion de las funciones
objeto.leer();
objeto.mostrar();
getch();
return 0;
}

No hay comentarios:

Publicar un comentario