У меня есть установленный класс, который может полиморфно хранить и управлять любым типом Multinumber. Это может быть объект типа Pair, Rational или Complex. Проблема, с которой я сталкиваюсь, состоит в том, что этот класс требует динамического управления памятью, и во многих случаях, таких как функция ниже, я не знаю, какой тип выделить. Поскольку набор не зависит от типа, я не могу знать, должен ли я использовать Multinumber * var = new Complex, Rational или Pair. Есть ли способ проверить тип того, что я добавляю первым, или сохранить эту информацию в другом типе данных без эффекта среза? Одна функция, где у меня есть эта проблема, это:
bool Set::addElement(Multinumber* newElement)
{
bool success = false;
if(isFull())
{
resize();
}
if(!isMember(newElement))
{
setArray[numElements] = newElement;
numElements++;
success = true;
}
return success;
}
РЕДАКТИРОВАТЬ: я говорю о ситуациях, когда это только место, которое я мог бы выделить, например, когда оператор + вызывается и должен немедленно отправить объект сюда, а вызывающий класс не знает какой тип. Это происходит в моем коде в операторе Set + перегрузка, так как я Set не знаю, что он хранит.