Когда уместно использовать интеллектуальные указатели C++ в графических интерфейсах (программы с основными циклами)

Я склоняюсь к использованию std::tr1::shared_ptr для автоматического управления указателем на служебный класс в моей программе с графическим интерфейсом.

В основном вот скелет программы:

int main () {
    Allocate dynamic memory for utility class

    GUI code.. GUI code... GUI Code..
    GUI Main Loop
}

Программа завершается, когда пользователь вызывает quit_cb или если вызывается SIGINT (CTRL+C). В моей ситуации мне нужно иметь возможность вызывать удаление в любом случае. Я могу вызвать удаление в quit_cb, но если вызывается SIGINT... то удаление никогда не вызывается! Уместно ли использовать умный указатель в этом случае?


person Community    schedule 29.07.2010    source источник


Ответы (1)


Вы также можете поймать Ctrl-C и вызвать quit_cb/delete даже в этом случае.

Как перехватить событие ctrl-c? (С++)

Так что независимо от случая выхода вы всегда защищены. Нет необходимости в автоуказателе или чем-то «умном».

person kazanaki    schedule 19.08.2010