MainClass *mb[1];
Class1 *m1;
cout << "Constructor type (1 - no parameters || 2 - with parameters): ";
int choose;
cin >> choose;
if (choose == 1) {
mb[1] = new Class1;
}
else if (choose == 2) {
mb[1] = new Class1("Red", 1);
}
m1 = dynamic_cast<Class*>(mb[1]);
m1->printEverything();
getchar();
и после этого Windows 10 бросает меня «Program1.exe перестает работать». Попытка добавить delete mb [1], но не повезло.Деструктор вызывает ошибку «Stopped working»
Destructor:
~Class() {
cout << endl;
getchar();
}
Как я могу удалить полученный объект класса?
Индексирование в массивах основано на 0 на C++. Используйте mb [0] для доступа к первому элементу в mb []. Ваша программа читает вне массива mb [], что является недопустимым. – WhiteViking
Кроме того, использование массива только с одним элементом чрезвычайно необычно. –
Ваш деструктор должен быть виртуальным. –