Witam. Nawet nie wiem jak to nazwać więc zaraz wyjaśnię
class Klasa1
{
virtual void Wypisz(){};
};
class Klasa2: public Klasa1
{
void Wypisz()
{
cout<<"Klasa2!!!";
}
};
class Klasa3: public Klasa2
{
void Wypisz()
{
cout<<"Klasa3!!!";
}
};
void Kopiuj (Klasa1 *Wsk, Klasa1 Argument)
{
Wsk = new //Tutaj chciałbym mieć typ klasy "Argument'u"
};
To było tak w skrócie.
Zastanawiam się czy jest możliwość dynamicznie rozpoznać klasę jaka została podana w argumencie (równie dobrze może to być Klasa1, Klasa2 lub nawet Klasa3) i zaalokować na Wsk ten sam typ klasy.
Próbowałem z bawić się dynamic_cast ale niezbyt mi to wyszło. Brakuje mi pomysłów.
Wiem, że mógłbym z jego pomocą rozpoznać co to za tym klasy i następnie odpowiednimi if'ami wszystko zrobić - ale zabije to cudowną "elastyczność na dodatki" obiektywności. Ktoś bardziej doświadczony da mi być może radę, ładnie proszę? :)
Albo ewentualnie powie, że to niemożliwe xD