bueno, es una solucion, pero te obliga a usar la clase Hijo como puntero especializado de Padre, es decir asi:
Código:
Padre * hijo = new Hijo();
hijo->Init();
porque Hijo no tiene funccion Init(). (bueno, tambien hay trampas, usando un reinterpret_cast con RTTI, pero es horrible).
Eso es una debilidad del c++, y es un poco complicado. Para entenderlo bien, el mejor es entender el LSP. Y aun mejor es aplicarlo ;)