2010-07-29 2 views
1

Я склоняюсь к использованию std :: tr1 :: shared_ptr для автоматического управления указателем на класс утилиты в моей графической программе.Когда это целесообразно использовать C++ Smart Pointers в графических интерфейсах (Программы с основными контурами)

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

int main() { 
    Allocate dynamic memory for utility class 

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

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

ответ

1

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

How can I catch a ctrl-c event? (C++)

Поэтому независимо от того в случае выхода вы всегда закрыты. Нет необходимости в автоматическом указателе или что-нибудь «умное».

Смежные вопросы