[c++] gleichnamiges Objekt unterschiedlicher Klassen mit Auswahl erstellen

guddy

Mitglied
Hey Leute,

wie kann ich es anstellen mit einer Auswahl ein gleichnamiges Objekt unterschiedlicher Klassen zu erstellen?

ich stelle mir das so vor:

Wenn Eingabevar=1 dann erzeuge Objekt "ga(genome)" der klasse1
Wenn Eingabevar=2 dann erzeuge Objekt "ga(genome)" der klasse2, usw.

Klasse1- klasseN haben dieselbe Basisklasse

Ich möchte dann im weiteren Quellcode auf das Objekt ga zugreifen...

Grüße

Guddy
 
C++:
struct base
{
    virtual ~base() {};
}

struct foo : public base
{};

struct bar : public base
{}

int main()
{
    base* ptr_class(NULL);

    std::cout << "Klasse 1 o. 2? ";
    int class_type(0);
    std::cin >> class_type;

    if (class_type == 1) ptr_class = new foo;
    else ptr_class = new bar;

    delete ptr_class;
}
...
 
Wenn ich den Code wie folgt anwende:

C++:
GAGeneticAlgorithm* ga = NULL;
cout << "Klasse 1 o. 2? ";
int class_type(0);
std::cin >> class_type;
if (class_type == 1) ga = new GASimpleGA;
else ga = new GASteadyGA;



kommt folgender Fehler:
Code:
 no matching function for call to `GASimpleGA::
   GASimpleGA()'

GAGeneticAlgorithm ist Basisklasse und GASimpleGA, GASteadyGA sind abgeleitet Klassen. Alle Klassen existieren in einer externen Bibliothek auf die ich zugreife.
 
Zurück