Предположим, у меня есть следующая структура:
struct sampleData
{
int x;
int y;
};
И при использовании я хочу инициализировать переменные типа sampleData
в известное состояние.
sampleData sample = { 1, 2 }
Позже я решаю, что мне нужны дополнительные данные, хранящиеся в моей структуре sampleData
, следующим образом:
struct sampleData
{
int x;
int y;
int z;
};
Насколько я понимаю, инициализация двух полей, оставшаяся от моей пред-z
структуры данных, все еще является допустимым оператором и будет скомпилирована., Заполняя недостающие поля значениями по умолчанию.
Правильно ли это понимание? Я недавно работал в Аде, которая также позволяет инициализировать агрегат, но которая помечает аналогичную проблему как ошибку компиляции. Если предположить, что мои предположения о приведенном выше коде C ++ верны, существует ли языковая конструкция, которая распознает пропущенные значения инициализации как ошибку?