Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
Ещё чуть-чуть С'ей++
Вот в тот раз (2 дня назад) я боролся сэтим классом, щас программу чуть усложнил - теперь опять на нём всё падает. Дело в том что он очень часто используется и соответственно очень часто гоняется конструктор. Ну так ведь и деструктор живой! В чём дело?
Симпотмы (в зависимости от настроения компилятора)
-глухое вылетание
-полная билиберда на экране (выводится всё что только можно одновременно)
-тормоз как на i8086 - каждая операция выполняется по 2-5 секунд, и после выполнения нескольких функций переходим в п.2 или п.1
Деструктор и конструктор:
PANEL::PANEL()
{
pos=1;
t_pos=1;
y_pos=1;
Delay=0;
x_pos[0]=3;
x_pos[1]=13;
x_pos[2]=27;
x_pos[3]=39;
strcpy(names[0],"Файл");
strcpy(names[1],"Добавить");
strcpy(names[2],"Помощь");
strcpy(names[3],"Выход");
filemenu=new char*[6];
for(int i=0;i<6;i++)
filemenu[i]=new char[29];
strcpy(filemenu[0],"Новое окно ");
strcpy(filemenu[1],"Открыть ");
strcpy(filemenu[2],"Сохранить ");
strcpy(filemenu[3],"Сохранить как ... ");
strcpy(filemenu[4],"Изменить справочники ");
strcpy(filemenu[5],"Распечатать таблицу ");
basemenu=new char*[3];
for(i=0;i<3;i++)
basemenu[i]=new char[27];
strcpy(basemenu[0],"Справочник названий фирм");
strcpy(basemenu[1],"Справочник телефонов ");
strcpy(basemenu[2],"Справочник адресов ");
addmenu=new char*[2];
for(i=0;i<2;i++)
addmenu[i]=new char[27];
strcpy(addmenu[0],"Добавить запись ");
strcpy(addmenu[1],"Редактировать таблицу ");
}
PANEL::~PANEL()
{
delete x_pos;
for(int i=0;i<4;i++) delete names[i];
for(i=0;i<6;i++) delete filemenu[i];
for(i=0;i<3;i++) delete basemenu[i];
for(i=0;i<2;i++) delete addmenu[i];
}
__________________
#define true false //счастливой отладки, друзья
|