Представьте меня есть класс A. B & C и унаследовать от A. B»наследуется из B.C++ Вызов функции ребенка на вектор родительских объектов
B» имеет переменную-член, который является вектором указателей . Я создаю новый B "под названием bP
и сохранил новый C внутри, называемый c
. Теперь я хочу позвонить c.f()
, функции, которая существует только для типа C. Я звоню bP[0]->f()
. Ошибка, которую я получаю, это «f(): не является членом« A ». Можно ли вызвать дочернюю функцию из вектора родительских объектов?
Предоставьте [mcve]; таким образом нам не нужно «воображать», мы можем посмотреть на фактический код. –
Если указатель указывает на дочерний объект, да. Вы можете просто сделать static_cast (bP [0]) -> f'. Но, пожалуйста, попробуйте включить код в следующий раз, это будет намного легче понять, что вы пытаетесь сделать. –
George
что такое B '' ?? укажите код – instance