Используя С++ 14, если я хочу объявить и инициализировать два целых числа в одной инструкции (используя разделитель-запятую):
int i,j = 0;
std::cout << i << "," << j << std::endl;
Тогда правильно инициализируется только самая правая переменная (j
). Действительно, компилятор выводит предупреждающее сообщение:
предупреждение: 'i' используется неинициализированным в этой функции [-Wuninitialized]
Конечно, решение состоит в том, чтобы повторить это для каждой переменной.
int i=0, j=0;
Но вопрос в следующем:
Есть ли способ правильно инициализировать несколько переменных только одним оператором присваивания?
int i = j = 0
и т. д., но я действительно не хочу поощрять это... - person underscore_d   schedule 08.01.2018int i=0;
не является присваиванием... это объявление со значением инициализатора. Как вы различаете случайint i, j = 0;
, когда вы не хотите, чтобыi
инициализировалось, а две переменные были инициализированы одним и тем же значением? Что тогда должно означатьint i = 0, j;
? - person Luis Colorado   schedule 09.01.2018