Tworzenie nowego obiektu z informacji typu dynamicznego

Czy w C ++ istnieje sposób na zapytanie o typ obiektu, a następnie wykorzystanie tych informacji do dynamicznego utworzenia nowego obiektu tego samego typu?

Na przykład powiedzmy, że mam prostą hierarchię 3 klas:

class Base
class Foo : public Base
class Bar : public Base

Załóżmy teraz, że podaję obiekt rzucony jako typ Base - który jest w rzeczywistości typu Foo. Czy istnieje sposób na zapytanie o typ i użycie tej informacji do późniejszego utworzenia nowych obiektów typu Foo?

questionAnswers(8)

yourAnswerToTheQuestion