Список инициализаторов используется при инициализации элементов данных класса. Список инициализируемых элементов указывается конструктором в виде списка, разделенного запятыми, за которым следует двоеточие.

Синтаксис начинается с двоеточия (:), а затем с каждой переменной и ее значения, разделенного запятой. Список инициализаторов не заканчивается точкой с запятой.

Синтаксис:
Constructorname(datatype value1, datatype value2):datamember{value1},datamember{value2}
{
...
}

Вот 5 мест, где список инициализаторов является обязательным в C ++, и вы не можете напрямую присвоить значение переменным-членам

  1. Вы не можете инициализировать нестатический постоянный член данных вашего класса без списка инициализаторов

Если в вашем классе есть константный член данных _x,, он должен быть инициализирован с помощью списка инициализаторов, вы не можете присвоить ему значение внутри конструктора.

2. Вы не можете инициализировать ссылочную переменную вашего класса без списка инициализаторов.

3. вы не можете инициализировать один член данных класса внутри другого класса (класса Two), если первый класс (класс One) не имеет конструктора по умолчанию для себя.

поэтому здесь, когда в функции main () вызывается Two two (one), в строке 27: когда один передается в качестве аргумента x (One x) для конструктора класса Two, мы ожидаем, что вызывается конструктор по умолчанию класса One.

Поскольку мы не определили конструктор по умолчанию для класса One, он вызывает ошибку.

4. Вы не можете инициализировать свой член данных базового класса из дочернего класса без использования списка инициализаторов.

5. когда у вас есть временная переменная, точно такая же, как имя элемента данных, вы должны использовать список инициализаторов.

Спасибо за прочтение, загружу соответствующий код на мою страницу Github
https://github.com/MaajidKhan