Класс Child
наследует класс Base
как protected
, поэтому функция-член Child::getData()
не является общедоступной для клиентов Child
.
Как все остальные здесь говорили, изменение наследованияот Base
до public
- это один из способов исправить это.
class Child: public Base
Также обратите внимание, что приведение вашего Child
объекта к типу Base
также делает функцию Base::getData()
объекта общедоступной.
return static_cast<Base *>(&obj)->getData();