Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Что в структурах и в классах инициализирует поля значениями по умолчанию?

Август Сентябрь Знаток (363), на голосовании 3 месяца назад
Как происходит порядок инициализации и кем?
Допустим, Point - структура, Person - класс:

Если есть static, то при:
 Point.x  
и
 Person.Name  
будут сгенерированы значения для всех static полей. А кем?

Остальные поля при создании экземпляра:
 Point point = new Point();    
Person person = new Person();
как будет и кем происходить инициализация?

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

Если есть ошибки в моем понимании, укажите в чем
Голосование за лучший ответ
Jurijus Zaksas Искусственный Интеллект (458533) 4 месяца назад
Да какая разница-то? Ну, мутит там что-то компилятор, мало ли...
Надо знать следующее:

  1. Все статические значения инициализируются при первом упоминании класса в тексте.
  2. Все нестатические значения инициализируются в момент создания объекта класса.
  3. После всего вышеперечисленного вызываются конструкторы.
Похожие вопросы