По сути, я хочу работать с массивом указателей суперкласса и использовать их для подклассов.
У меня есть код, который манипулирует геометрическими формами. Это суперкласс "геометрических форм", состоящий из виртуальных методов и статических целых.
Позже в коде я создаю унаследованные классы (круги, квадраты ..), дополняющие приложение.
Я хочу создать массив указателей «геометрических форм» и передать i
-й элемент (индекс, основанный на статическом атрибуте) определенной подфункции, основанной на регистре switch
, отвечающей за методы для эта геометрическая фигура, с этим i
указателем.
Пример: я хочу работать с квадратами, поэтому я передаю menuSquares(geometricFroms *array[foo::getStatic()]){}
...
Внутри этой функции я хочу сделать:
ptrPassed = new Circle();
Как я могу это сделать?
Я попытался использовать общий указатель int
вместо типа суперкласса:
Class GeomFig {};
Class Circle : public GeomFig
{};
int main(){
GeomFig *arrayPtrs[100];
// selection of which shape the user wants to use
// ...
menuSquares(arrayPtrs[GeomFig::getStatic()]) {}...
}
// code def
menuSquares(GeomFig* &geomPtr)
{
geomPtr = new Circle();
}