Tworzenie obiektu klasy

0

Witam,

Mam do zrobienia taki projekt gdzie mam zadeklarowane wiele klas, które dziedziczą po sobie.

Mam takie pytanie, czy jest możliwość zrobienia takiego czegoś, że na przykład mam nazwę klasy w jakimś stringu. Czy jest możliwe zrobienie takiego czegoś, że program weźmie mi nazwę tej klasy i utworzy mi obiekt tej klasy ??

Glównie chodzi mi o to, żeby program wiedział o tym, że to jest klasa w tym stringu, że to jest jakiś typ.

Chodzi mi głównie o uniwersalność, tzn. że nieważne jaki napis byłby w tym stringu, zawsze będzie wiedział ze to klasa i utworzy obiekt do tej klasy.

Mam nadzieje ze wyraziłem się jasno.

Dziękuję za odpowiedź.

Pozdrawiam :)

0

Nie da się.Jedyny substytut to coś w stylu:

BaseClass* getObject(const string &className)
{
   if(className=="ChildClass1") return new ChildClass1;
   else if(className=="ChildClass2") return new ChildClass2;
   ....
   else return 0;
}

Btw,polecam zapoznać się z wzorcami projektowymi Fabryka i Fabryka Abstrakcyjna.

0

@aiding chodzi ci o coś co w Javie nazywa się refleksją. C++ nie umożliwia czegoś takiego.
Możesz zaimplementować to samodzielnie jak pokazano wyżej.
Możesz też skorzystać z takiego cuda jak cint -> http://root.cern.ch/drupal/content/cint
to jest interpreter C++ który udostępnia mechanizm refleksji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0