C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Access Violation, при удалении ссылки ругается!
Newbie
Отправлено: 02.04.2004, 16:17


Не зарегистрирован







Привет!
Есть свой класс. В конструкторе вот что:
CODE

MyClass::MyClass()
{
 TRegistry ®Key = *new TRegistry();
 try
 {
 bool keyGood = regKey.OpenKey(KeyName, false);
 if (!keyGood) {delete ®Key; return;} //тут вылетает Access Violation
}
 __finally
 {
  delete ®Key;
 }

}


И какого х.. он вылетает??? ведь объект созддался, значит его нуна удалит?! Чо-то не понимаю....
Asher
Отправлено: 02.04.2004, 18:07


Мастер участка

Группа: Модератор
Сообщений: 550



А... Э... Нельзя по проще?
типа TRegistry* regKey = new TRegistry();
а дальше regKey->OpenKey(KeyName, false);
...
delete regKey;//
klen
Отправлено: 02.04.2004, 23:56


Машинист паровоза

Группа: Участник
Сообщений: 239



Чесно слово, Вы какойто странный...........слов нет.
Георгий
Отправлено: 03.04.2004, 00:11


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



QUOTE
И какого х.. он вылетает??? ведь объект созддался, значит его нуна удалит?! Чо-то не понимаю....

ага, вылетает. и будет вылетать!

ты, извиняюсь-блин, во первых:
2 раза delete на один и тот же указатель сделал.
зачем то ссылочному типу присвоил разыменованный указатель.
совсем дикость — применил delete к ссылке !!!

Итого: я присоединяюсь к Ашеру с его фразой "А... Э... Нельзя по проще?"

Отредактировано Георгий — 03/04/2004, 01:13

Вернуться в Вопросы программирования в C++Builder