Array de objetos dinámicos creados dinámicamente.

Y desde una clase derivada, para más INRI. =)

Algo a lo que en su día me constó pillarle el truquillo, por si os veis en el dilema vosotros también.

No os asustéis con los nombres de las clases, es parte de un pequeño programa para algoritmos genéticos que estoy pasando a C++. Estaba escrito en Python, pero a algunos no les termina de encajar el lenguaje. El caso es el que sigue; tenemos tres clases, una hereda de la anterior.

genoma (clase base)
|
airfoil (hereda de genome)
|
population (hereda de airfoil)

Genoma es una clase que se crea dinámicamente, es un vector de N elementos. Luego ¿Qué tengo que hacer para crear dentro de la clase population un array de objetos airfoil que llaman a un constructor de genoma con un parámetro dinámico? Suena a punteros, ¿verdad?

#include "genoma.h"
#include "airfoilClass.h"

class population : public airfoil {
public:
    population (int Npopulation, int elements);
    ~population () {}; 

    //______Metodos de la clase______//
    //...
protected:
    int numberOfMembers;//numero de miembros que constituyen la poblacion
    airfoil **populationMatrix;
   //puntero a puntero 
    //...
};

population::population(int Npopulation, int elements):airfoil(elements)
{
    numberOfMembers = Npopulation;
    //Un numero de objetos, los que queramos que contenga nuestro array
    populationMatrix = new airfoil *[Npopulation];
    //iniciamos los objetos dinamicos en un bucle.
    for (i = 0; i < Npopulation; i++) {
        //en cada pasada del bucle se llama al constructor de la clase.
        populationMatrix[i] = new airfoil(elements);
    }   
    cout << "Como acceder a los objetos dinamicos creados dinamicamente" << endl;
    //de nuevo empleamos punteros para llamar a metodos o acceder a miembros de la clase
    populationMatrix[1]->showGenoma();
}

Quien pase por aquí sabrá hoy una cosa nueva.🙂

Esta entrada fue publicada en C/C++ y etiquetada . Guarda el enlace permanente.

Una respuesta a Array de objetos dinámicos creados dinámicamente.

  1. Elf88 dijo:

    Disculpa, ¿será que podrías colocar el código completo, es decir, las tres clases: genoma, airfoil y population junto con el main? Te lo agradecería un montón! Estoy un poco liado con los conceptos de herencia… y también me gustaría hacerte un par de preguntas ya que lo que busco se relaciona mucho con lo que explicas aquí ^^

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s