С++ заполнение вектора объектами созданного класса

Я изучаю с++, для практики пишу код, представляющий из себя класс name_value

Names_Pairs(string name, double age){
    set_pair(name, age);
}
Names_Pairs(){}
void set_pair(string name, double age){
    string n=name;
    double a=age;
    names.push_back(n);
    ages.push_back(a);}

Выше представлен конструктор и функция, создающая объект класса, ниже фрагмент int main()

vector<Names_Pairs> pairs;
string n;
double a;
cout << "Input name and age:" << endl;
while (cin){
    cin >> n;
    cin >> a;
    if(n=="x" || a==0){break;}
    const Names_Pairs x(n,a);
    pairs.push_back(x);}

Вектора string и ages инициализрованы в области private класса, как статические вектора. Все работает так, как должно, до того момента, когда надо заполнить вектор Pairs объектами класса Name_Pairs. Он заполняется пустыми значениями или значениями, т.е. нулем и строкой не содержащей ничегo.

Пожалуйста, объясните мне почему так происходит?

Полный текст программы и вывод(скриншоты, код бьется и почти нечитаем): введите сюда описание изображения введите сюда описание изображения введите сюда описание изображения


Ответы (0 шт):