Por qué separar la definición e inicialización de variables en C ++?
Actualmente estoy trabajando en un código C ++ bastante antiguo y a menudo encuentro cosas como
int i;
i = 42;
Object* someObject = NULL;
someObject = new Object();
o inclus
Object someObject;
someObject = getTheObject();
Entiendo completamente lo que hace este código, pero realmente no tengo idea de cuándo una separación de definición e inicialización de variables podría ser útil. Busqué algunas explicaciones pero siempre terminé con listas de inicialización de miembros o la pregunta de cuándo debería definir sus variables locales.
Al final, no entiendo la razón por la cual alguien podría haber escrito este código intencionalmente. Simplemente divide la definición y la inicialización en dos líneas subsiguientes y crea una sobrecarga: en el último caso, crea un objeto utilizando el constructor predeterminado solo para destruirlo en la siguiente línea.
Me pregunto si simplemente debería cambiar el código a
int i = 42;
Object* someObject = new Object();
Object someObject = getTheObject();
¿Podría esto causar algún problema?