, поэтому у меня возникает проблема вызова функции переопределения производного класса, когда он хранится в массиве его базового класса.Производный объект класса переопределяет функцию базового класса в векторе объектов
Базовый класс называется Obstacle, а производным классом является Cliff. Препятствие имеет виртуальную функцию drawToBackground, а Cliff, которая наследуется от Obstacle, также имеет функцию drawToBackground, обе из которых являются недействительными.
У меня тогда есть вектор препятствий, называемый obstsVec. В этом векторе я храню кучу препятствий и скалы. Теперь скажем, что скала является пятым элементом вектора. Когда я вызываю obstsVec [5] .drawToBackground(); он вызывает функцию drawToBackground из класса Obstacle, а не класса cliff.
Является ли это функцией в C++ или я могу просто что-то объявить неправильно?
Благодаря
Трудно быть уверенным без кода, но я думаю, вам нужно изучить * нарезку объектов *. – juanchopanza
Как вы храните 'Cliff' в' vector '? –
Beta
@Beta не уверен. Я прихожу из C# в C++, и я уверен, что это возможно в C#. Думаю, я ошибался, чтобы использовать его в C++. – picklechips