Две проблемы:
- вы написали
hObject
(имя типа), когда вы имели в виду foundObj
(имя объекта) - это указатель, поэтому вам нужноприведение к типу указателя (ОБНОВЛЕНИЕ: вопрос был отредактирован, чтобы исправить это).
Исправляя это, а также используя менее опасное приведение в стиле C ++, должно работать следующее:
vector<int> points = (static_cast<DrawerWidget*>(foundObj))->getPoints();
а как насчет динамического приведения?
Если базовый класс полиморфен (то есть имеет хотя бы одну виртуальную функцию), тогда это будет еще безопаснее - вы можетево время выполнения проверьте, что приведение действительно:
if (DrawerWidget * dw = dynamic_cast<DrawerWidget*>(foundObj)) {
vector<int> points = dw->getPoints();
} else {
// not a DrawerWidget
}
, хотя, если вы обнаружите, что делаете это, у меня возникнет мысль о дизайне: может быть, более уместно перепроектировать базовый класс для поддержки того, что вы хотитесделать с помощью виртуальных функций или убедиться, что преобразование действительно.