Curiosity on covariant return type (C++)