// Tablacad.cpp: ejemplo de Tabla con cadenas
// C con Clase: Marzo de 2002
#include <iostream>
#include <cstring>
#include <cstdio>
#include "Tabla.h"
using namespace std;
const int nElementos = 5;
int main() {
Tabla<char *> TablaCad(nElementos);
char cadena[20];
for(int i = 0; i < nElementos; i++) {
sprintf(cadena, "Numero: %5d", i);
TablaCad[i] = cadena;
}
strcpy(cadena, "Modificada");
for(int i = 0; i < nElementos; i++)
cout << "TablaCad[" << i << "] = "
<< TablaCad[i] << endl;
return 0;
}
// Tabla.h: definición de la plantilla tabla:
// C con Clase: Marzo de 2002
#ifndef T_TABLA
#define T_TABLA
template <class T>
class Tabla {
public:
Tabla(int nElem);
~Tabla();
T& operator[](int indice) { return pT[indice]; }
int NElementos() const { return nElementos; }
private:
T *pT;
int nElementos;
};
// Definición:
template <class T>
Tabla<T>::Tabla(int nElem) : nElementos(nElem) {
pT = new T[nElementos];
}
template <class T>
Tabla<T>::~Tabla() {
delete[] pT;
}
#endif