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