codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
// Tabla.cpp: ejemplo de Tabla de cadenas // C con Clase: Marzo de 2002 #include <iostream> #include <cstdio> #include <cstring> ////// INICIO 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; } ////// FINAL Tabla ////// INICIO Cadena using std::strcpy; using std::strlen; class Cadena { public: Cadena(char *cad) { cadena = new char[strlen(cad)+1]; strcpy(cadena, cad); } Cadena() : cadena(NULL) {} Cadena(const Cadena &c) : cadena(NULL) {*this = c;} ~Cadena() { if(cadena) delete[] cadena; } Cadena &operator=(const Cadena &c) { if(this != &c) { if(cadena) delete[] cadena; if(c.cadena) { cadena = new char[strlen(c.cadena)+1]; strcpy(cadena, c.cadena); } else cadena = NULL; } return *this; } const char* Lee() const {return cadena;} private: char *cadena; }; ostream& operator<<(ostream &os, const Cadena& cad) { os << cad.Lee(); return os; } ////// FIN Cadena using namespace std; const int nElementos = 5; int main() { Tabla<Cadena> TablaCad(nElementos); char cadena[20]; for(int i = 0; i < nElementos; i++) { sprintf(cadena, "Numero: %2d", i); TablaCad[i] = cadena; } strcpy(cadena, "Modificada"); for(int i = 0; i < nElementos; i++) cout << "TablaCad[" << i << "] = " << TablaCad[i] << endl; return 0; }
Private
[
?
]
Run code
Submit