Ver Mensaje Individual
  #4 (permalink)  
Antiguo 18/04/2010, 10:40
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Contenedores en C++

Bueno depende, yo por dinámico entiendo listas (#include<list>), que no es lo mismo que arreglos que varían de tamaño (#include <vector>)

Pero independientemente de eso, puedes hacerlo con el operador new[] simplemente definiendo un constructor sin argumentos.

Código C++:
Ver original
  1. #include <stdio.h>
  2. #include <vector>
  3.  
  4. #ifndef ARREGLO_H
  5. #define ARREGLO_H
  6.  
  7. #include <string.h>
  8.  
  9. class Arreglo
  10. {
  11.     private:
  12.  
  13.         int *vector;
  14.         int tamano;
  15.         int cantidad;
  16.         char *nombre;
  17.  
  18.     public:
  19.         Arreglo();
  20.         Arreglo(const char*, int);
  21.         int getPos(int);
  22.         int getCant();
  23.         int getTam();
  24.         char *getNombre(void){ return nombre ;}
  25.         void insertElement(int a);
  26.  
  27.         ~Arreglo();
  28.  
  29. };
  30.  
  31. #endif // ARREGLO_H
  32.  
  33. Arreglo::Arreglo(){
  34.     vector = NULL;
  35.     tamano = 0;
  36.     cantidad = 0;
  37.     nombre = NULL;
  38. }
  39.  
  40. Arreglo::Arreglo(const char *unnombre, int n)
  41. {
  42.     nombre = new char [strlen(unnombre)+1];
  43.     strcpy(nombre,unnombre);
  44.     tamano=n;
  45.     cantidad=0;
  46.     vector = new int[n];
  47.  
  48.     for(int i=0; i<n; i++)
  49.     {
  50.         vector[i]=0;
  51.     }
  52. }
  53.  
  54. int Arreglo::getCant()
  55. {
  56.     return cantidad;
  57. }
  58.  
  59. /*char Arreglo::getNombre(void)
  60. {
  61.     return *nombre;
  62. }*/
  63.  
  64. int Arreglo::getPos(int a)
  65. {
  66.     return vector[a];
  67. }
  68.  
  69. int Arreglo::getTam()
  70. {
  71.     return tamano;
  72. }
  73.  
  74. void Arreglo::insertElement(int dato)
  75. {
  76.     if(tamano == cantidad)
  77.     {
  78.         throw "No queda espacio en el vector";
  79.     }
  80.  
  81.     vector[cantidad] = dato;
  82.     cantidad++;
  83.  
  84. }
  85.  
  86. Arreglo::~Arreglo()
  87. {
  88.     delete []vector;
  89. }
  90.  
  91. int main(){
  92.     Arreglo *arreglo;
  93.     arreglo = new Arreglo[5];
  94.     return 0;
  95. }