Когда начальное значение указывается после знака равенства, это называется
инициализацией копированием. Эта форма инициализации была унаследована от языка C.
int width = 5; // инициализация копирования значения 5 в переменную width
Так же, как и копирование присваивания, она копирует значение в правой части равенства в создаваемую переменную в левой части. В приведенном выше фрагменте переменная width
будет инициализирована значением 5
.
Инициализация копированием вышла из моды в современном C++ из-за меньшей эффективности по сравнению с другими формами инициализации для некоторых сложных типов. Однако C++17 исправил большую часть этих проблем, и инициализация копированием теперь находит новых защитников. Вы также можете встретить ее в старом коде (особенно в коде, перенесенном с языка C), или у разработчиков, которые просто считают, что она выглядит более естественно и легче читается.
Дополнительно
Инициализация копированием также используется при неявном копировании или преобразовании значений, например, при передаче аргументов в функцию по значению, возврате из функции по значению или перехвате исключений по значению.