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 |
|