В С++ существует ли способ запросить тип объекта, а затем использовать эту информацию для динамического создания нового объекта того же типа?
Например, скажем, у меня простая иерархия 3-х классов:
class Base
class Foo : public Base
class Bar : public Base
Теперь предположим, что я даю вам объект, отлитый как тип Base, который в действительности имеет тип Foo. Есть ли способ запросить тип и использовать эту информацию для последующего создания новых объектов типа Foo?