Как организовать в c++ цикл for in? Можно ли вообще?
Избалованный JS, я вернулся к плюсам, которых толком не знал. Очень хочется обходить свойства объекта в цикле. Пока мне это представляется только в виде создания массива свойств.
@prosto_anton обходить то ясно что последовательно обращаться. Вопрос был скорее для чего? Видимо для увеличения на 1.
Мне интересно, в какой такой задаче нужно увеличивать сразу все характеристики (вежливость, аккуратность)? А потом ты захочешь добавить в свойства число пальцев, глаз и (простите) длину гениталий. Это логически не правильно, поэтому в языке С++ такого нет (хотя может и запилили).
Выходом действительно будет массив!
Возможно вам стоит использовать например std::map для хранения свойств объекта, если они одного типа (double в этом примере). Если вы говорите о переборе всех полей класса, то сделать этого нельзя, потому что они могут быть разного типа и не понятно что с ними делать.
А зачем вам это?
@prosto_anton Пользовательский итератор может помочь, но все зависит от задачи. Скажем для сериализации лучше использовать boost.serialization или другую специализированную библиотеку.
Сейчас пишу на QT и C++. Я знаю, как следующий код представить компактно с помощью цикла for in в JS:
this->ms.accuracy.val = ui->comboBoxAccuracy->currentIndex();
this->ms.accuracy.pr = ui->spinBoxAccuracy->value();
this->ms.price.val = ui->comboBoxPrice->currentIndex();
this->ms.price.pr = ui->spinBoxPrice->value();
а то пример про итерацию, правда, был не показательным.