Несмотря на то, что они выглядят одинаково, int
и string
довольно различаются тем, что int
является фундаментальным типом, тогда как string
является классом.
Классы могут иметь конструкторы по умолчанию и, следовательно, автоматически инициализировать до разумного значения (""
в случае строки). Фундаментальные типы просто получают тот битовый шаблон, который был в том месте, где они хранятся.
Применение инициализатора для фундаментальных типов не инициализирует в ноль, поэтому:
struct player {
string name;
string surname;
int goals {};
string tim;
};
Поскольку он делает без разницы с классами, вы можете захотеть использовать его всегда:
struct player {
string name {};
string surname {};
int goals {};
string tim {};
};