Por que definição variável variável e inicialização em C +

Atualmente, estou trabalhando em um código C ++ bastante antigo e frequentemente encontro coisas como

int i;
i = 42;

o

Object* someObject = NULL;
someObject = new Object();

ou mesmo

Object someObject;
someObject = getTheObject();

Entendo completamente o que esse código faz, mas realmente não tenho idéia de quando essa separação de definição e inicialização de variáveis pode ser útil. Procurei algumas explicações, mas sempre acabei com listas de inicialização de membros ou com a pergunta quando você deveria definir suas variáveis locai

No final, não entendo o motivo pelo qual alguém poderia ter intencionalmente escrito esse código. Ele apenas divide a definição e a inicialização em duas linhas subseqüentes e cria uma sobrecarga - no último caso, ele cria um objeto usando o construtor padrão apenas para destruí-lo na próxima linh

Gostaria de saber se devo simplesmente alterar o código para

int i = 42;
Object* someObject = new Object();
Object someObject = getTheObject();

Isso pode causar problemas?

questionAnswers(8)

yourAnswerToTheQuestion