условно, при создании класса с тремя переменными
int
bool
float
будет выделена область памяти под объект, дальше для каждой переменной будет вызван конструктор (тут понятно, что конструкторы будут пустые и возможно даже не будут вызваны, если нет параметров для них, которые передают через список инициализации).. и вот только потом уже будет вызван конструктор класса, в котором выполняется операция присваивания для каждой переменной
а если это будут пользовательские типы какие нибудь и для них опеределен дефолтный конструктор, то после выделения памяти будут вызваны дефолтные конструкторы для этих переменных и только потом уже в конструкторе класса будет выполнено присваивание для каждой переменной
если же инициализировать члены класса через список инициализации, то вместо дефолтных конструкторов для данных типов будут вызваны конструкторы с параметрами и уже никаких операций присваивания не будет выполнено
как то так
отличие в том, что машинного кода будет больше, если выполнять присваивание переменным в конструкторе класса