Обычно инициализация переменной - это первое присваивание после объявления, поскольку переменные не инициализируются автоматически.Последующие присваивания - это просто присваивания.
void foo() {
int i;//not initialized.
}
За исключением полей , которые являются переменными, объявленными в классе или структуре.Они инициализируются их значениями по умолчанию непосредственно перед вызовом конструктора для этого экземпляра объекта.Следовательно, даже если вы (сначала) присваиваете что-то полю в конструкторе, и это поле не было инициализировано при объявлении, это, строго говоря, присваивание, а не инициализация.Не вдаваясь в такие подробности, я предполагаю, что многие программисты рассматривают первое назначение поля в конструкторе как инициализацию и могут использовать его как таковой в своих разговорах друг с другом.Вероятно, это использование / привычка проистекает из использования неуправляемых языков, таких как C / C ++, где переменная содержит тарабарщину при первом объявлении, и, следовательно, они должны заполнить ее не мусорными значениями (инициализация).
class A {
int x;//not initialized
int y = 1;//initialized here
A() {
x = 1;//strictly speaking, not initialization, just assignment.
y = 2;//was obviously initialized above
}
}
Для программистов, не пишущих компиляторы или языки, способность эффективно общаться с другими программистами важнее, чем знание точной терминологии инициализации слова.Так что продолжайте и используйте это в значении, которое все вокруг вас понимают.Вы не ошибетесь, если объясните точное значение (но я, вероятно, не буду опасаться разоблачения моих педантичных тенденций).
Лично я избегу книги, которая использует термин «команда инициализации» для переменных.