Мне не совсем понятно, о чем вы спрашиваете, но переменные будут сохранять свое значение для каждой итерации цикла, если они объявлены вне самого цикла. Например:
int a = 0;
while(a < 10)
{
int b = 0;
cout << "a: " << a << " b: " << b << "\n";
a++;
b++;
}
В приведенном выше примере значение b всегда будет равно 0, поскольку оно объявлено внутри цикла и каждый раз инициализируется повторно, тогда как a будет сохранять свое значение и увеличиваться при каждой итерации. Если бы b был объектом, а не int, его конструктор и деструктор вызывали бы каждую итерацию.