Сначала я попытался бы выяснить, почему код был написан таким образом. Это может быть просто потому, что программист не знал ничего лучше, или потому что они пытались обойти какой-то интересный дефект в компиляторе. Но может быть реальная причина, о которой вы не знаете. Если да, то, если вы не понимаете причину и ее побочные эффекты, вы можете внести дефект, изменив этот код.
Это вне пути, и, учитывая, что нет особой причины, почему код должен быть таким, как сейчас, вы должны быть в безопасности при изменении кода, чтобы использовать более современные и правильные конструкции.
Но почему? Я понимаю мотивацию сделать код более правильным. Но что вы на самом деле получаете от этого? Если код работает так, как сейчас (большое предположение), то, изменив код, вы, возможно, получите выгоду от того, чтобы сделать код более понятным для будущих программистов, но каждая строка кода, которую вы изменяете, представляет возможность новой ошибки быть написано.
И если, наконец, вы решили продолжить изменение, зачем останавливаться на полпути? Рассмотрите возможность избавления от всех new
s и delete
в целом и замените их на vector
s и т. Д.