What are dynamic constructors and how do we use dynamic constructors in C++ to concatenate two strings?