como vimos en el programa de arriba crear vectores de manera dinamica no es tan complicado si aprendemos a manejar constructores y destructores , pero con una matriz tenemos unos pasos de mas como veran en este programa que voy a pegar
* esta es una matriz dinamica fabricada
ppor medio de apuntadores*/
#include <iostream.h>
#include <conio.h>
class matriz//declaro la clase
{
int **apu;//Defino un doble apuntador ya que el primero llevara filas y el segundo columnas
int i,j,filas,columnas;//variables necesairas
public:
matriz();//constructor
~matriz();//destructor
void leer(void);//funcion
void mostrar(void);//funcion
};
matriz::matriz()
{
// al crear la matriz nesesariamente nesecitamos antes definir el numero de filas y columnas par que se realize bien el proceso
filas=columnas=j=i=0;//inicializando las variables
cout<<"Digite el numero de filas "<<endl;
cin>>filas;//el numero de filas
cout<<"Digite el numero de columnas "<<endl;
cin>>columnas;//numero de columnas
//proceso para crear una matriz dinamica
apu=new int*[filas];//aqui definimos el primer apuntador como que tendra las filas
for(int j=0;j<filas;j++)//ahora hacemos que el doble aputnador se asocie con las culumnas
{
apu[j]=new int [columnas];//aqui difinimos el segundo apuntador , las filas de la matriz
}
}
matriz::~matriz()//destructor
{
//al igual que el constructor en el quefinimos el primer apuntador para que se defina con las columnas aqui ahcemos lo mismo
for(j=0;j<filas;j++)
{
delete apu[j];//primero se destruyen el numero de columnas
delete apu;//una ves destruidor el numero de columnas se destruye el vector que a quedado ( el primer apuntador)
}
}
void matriz::leer(void)
{
//se ingresa los datos de la matriz
for(i=0;i<filas;i++)
{
for(int j=0;j<columnas;j++)
{
cout<<"Digite el dato "<<"["<<i+1<<"]["<<j+1<<"]"<<endl;
//como en c++ se tiene en cuenta desde la posicion cero entonces agregamos un mas a cada vector para que deverdad se vea el vector
cin>>apu[i][j];
}
cout<<endl;
}
}
void matriz::mostrar(void)
{
// se muestran los datos de la matriz
cout<<"Los datos de la matriz son"<<endl;
for( int i=0;i<filas;i++)
{
for( int j=0;j<columnas;j++)
{
cout<<apu[i][j]<<" ";
}
cout<<endl;//este cout es para se imprima en forma de matriz
}
}
int main()
{
matriz objeto;
objeto.leer();
objeto.mostrar();
getch();
return 0;
}
Muchas gracias por su aporte :)
ResponderEliminarexcelente aporte ya estaba estancado es ese tema, muchas gracias.
ResponderEliminarse pueden sumar 2 matrices que tengan esta clase como tipo de dato?
ResponderEliminar