In virtual constructor idiom there are virtual functions which returns new object OR copy of the object using virtual functions. But then to call these virtual functions polymorphic way, you must have object of that class created using actual constructor.
In design pattern context, it means client is aware of the type of object before using polymorphic way of object creation?
The client doesn’t necessarily have to be aware of the concrete type. For example, consider this hierarchy:
In this case, the client can make and copy an existing object like so:
In neither case does the client ever know the dynamic type of
*por*q.