// matriz2d.cpp - Definición de la plantilla Matriz2d
#include <iostream>
using namespace std;

template<class T> Matriz2d<T>::Matriz2d(int nf, int nc) :
Vector<T>(nf)
{
  nCols = nc; // columnas
  matriz2d = reinterpret_cast<T **>(&(Vector<T>::operator[](0)));
  for (int f = 0; f < nf; f++)
    matriz2d[f] = Vector<T>::asignarMem(nCols); // memoria para la fila f
}

template<class T> Matriz2d<T>::~Matriz2d()
{
  destruir();
}

template<class T> void Matriz2d<T>::destruir()
{
  for (int f = 0; f < filas(); f++)
    delete [] matriz2d[f];
}
    
template<class T> T& Matriz2d<T>::operator()(int f, int c)
{
  return matriz2d[f][c];
}

