WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  про удаление класса

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   про удаление класса
sergeyMJ опубликован 15-02-2002 16:44 MSK   Click Here to See the Profile for sergeyMJ   Click Here to Email sergeyMJ  
Правильно ли вызывать из функции-члена, удаление себя самого.

void CClass::Closing()
{
delete this;

}

migel опубликован 15-02-2002 18:06 MSK     Click Here to See the Profile for migel  Click Here to Email migel     
Если обеспечиш только динамическое создание экземпляров класса, и даш гарантии что никто после этого указатель на объект использовать не будет то можно
al опубликован 15-02-2002 19:30 MSK     Click Here to See the Profile for al  Click Here to Email al     
в MSF delete this - стандартный способ удаления потомков CWnd (помещается в PostNcDestroy) или COM-обектов (помещается в
FinalRelease) - так что использовать не только можно, но и нужно.

Valery опубликован 15-02-2002 20:19 MSK     Click Here to See the Profile for Valery  Click Here to Email Valery     
мне кажется проще, чем использовать такие замороки, все-таки ведущие указатели.
или уж если хочется гарантий, что объект создан в куче, придется перегружать new твоего класса.
ЗЫ но ведущие указатели все же проще и универсальней, тем более для своих классов.
sergeyMJ опубликован 15-02-2002 21:53 MSK     Click Here to See the Profile for sergeyMJ  Click Here to Email sergeyMJ     
Что такое ведущие указатели, пример если можно?
sergeyMJ опубликован 15-02-2002 21:58 MSK     Click Here to See the Profile for sergeyMJ  Click Here to Email sergeyMJ     
Собственно почему я такой вопрос задаю. Мне нужно убивать класс CClientSocket, когда с ним разрывают связь. Вызывается CClientSocket::OnClose()
{
... обработка
delete this;
}
и в нем я хочу убить его самого. Другого способа пока не вижу. Если знаете, подскажите.
Valery опубликован 15-02-2002 22:47 MSK     Click Here to See the Profile for Valery  Click Here to Email Valery     
ведущие указатели - шаблонный (обычно) класс, который сам знает как и когда создавать и уничтожать объект вложенного в него (ведомого) типа. обычно у него перегружен оператор селектора по адресу, так чтобы возвращать указатель на объект указываемого типа. Тогда нормально срабатывает к примеру такой синтаксис:
mp->func();
где, mp - соответственно ведущий указатель на пользовательский класс, func() - функция пользовательского класса.
очень хорошо про ведущие указатели (и не только) написано у Джефа Элджера в серии Библиотека программиста.
В принципе могу кинуть для примера свой класс ведущих указателей, да их и так как собак нерезанных в округе валяется.
ADK опубликован 18-02-2002 13:46 MSK     Click Here to See the Profile for ADK  Click Here to Email ADK     
delete this метод общепринятый, но вот boudsChecker на него ругается...
Stiff опубликован 18-02-2002 14:22 MSK     Click Here to See the Profile for Stiff  Click Here to Email Stiff     
2 Valery А гденибудь в сети есть Джефа Элджера, а?
Valery опубликован 18-02-2002 15:39 MSK     Click Here to See the Profile for Valery  Click Here to Email Valery     
2Stiff:
есть, конечно - www.bolero.ru :))
а если серьезно, не знаю, я предпочитаю нормальные книги, перепечатки тяжело таскать, с экрана читать - глаз жалко.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.