Вы не привели пример вызова функции вашего класса.Я предполагаю, что вы пишете следующий код:
dri sth;
cout << sth.getAge() << endl;
cout << sth.getId() << endl;
Однако, обратите внимание, что динамическое связывание и полиморфизм c ++ могут применяться только тогда, когда экземпляр является указателем или ссылкой , что фактически означает, что выследует сделать это, чтобы получить идеальный результат:
base *sth = new dri();
cout << sth->getAge() << endl;
cout << sth->getId() << endl;