У меня есть базовый класс, от которого наследуются три класса. Всякий раз, когда эти дочерние классы создаются в функции, я получаю переполнение стека, когда функция входит в тело. Они могут быть созданы в конце или в начале, это не имеет значения. Как только тело функции введено, я получаю переполнение стека. Если классы удалены, функция работает нормально. Дочерние классы не содержат ничего, кроме одной переопределенной функции, а также их конструкторы и деструкторы. Все конструкторы и деструкторы пусты.
int main()
{
Borrow borrow;
MovieStore store( "STORE!!!!!!" );
store.initalize();
store.processTransaction();
return 0;
}
Не уверен, насколько это могло бы помочь, но в основном это занятие для детей. Как только тело функции введено, возникает переполнение стека. Даже если бы я его создал до возврата 0, он все равно зависнет при входе в тело функции. Если он удален, программа работает нормально. На самом деле я объявляю заимствование в другой функции (основной - короче), но она имеет одинаковый эффект независимо от того, в какую функцию она помещена.
class Borrow : public Transaction
{
public:
Borrow();
virtual ~Borrow();
virtual void perform( Customer *, Item * );
};
Заимствовать и другие дочерние классы одинаковы. Пустой конструктор и деструктор с одной переопределенной виртуальной функцией.
Реализация выполнения:
void Borrow::perform( Customer *customer, Item *aMovie )
{
customer->addMovie( aMovie, "B" );
}