La verdad es que si quieres huir de los dolores de cabeza y horas de depuración infructuosa, te recomendaría que huyeras de C++. Si fuera "sólo C" sería distinto, que aun dando más dolor de cabeza que (Object)Pascal, sigue siendo muy soportable.
Varios consejos: si algo no funciona como debería y no sabes por qué, o incluso si funciona perfectamente, revisa los constructores de conversión y la sobrecarga de operadores, en especial los de las clases "padre" y aquellos que admitan objetos que no sean de la clase o admitan objetos de alguna clase padre o... mejor revisa todos (lo sé: son miles, pero más de una vez tuve que revisar
todos los constructores de
todas las clases de la biblioteca stdc++ [ya la conocerás, ya] como medida desesperada, y descubrí que el problema estaba ahí y no en mi código, y tuve que sobrecargar un operador para evitar que usara el constructor de conversion no adecuado, y aun así..). También te recomiendo que huyas de los objetos automáticos y de las referencias y que uses
siempre punteros.
Hazme caso, compañero, que estuve unos cuantos años lidiando con ese engendro del infierno antes de escapar despavorido al paraíso que es Pascal. Espero no haberte asustado mucho; no es mi intención que no aprendas C++, al contrario, cuanto más sepas de C++ mejor trabajaras con Delphi.