Как написать деструктор, когда у меня есть указатели в классе? - PullRequest
0 голосов
/ 15 марта 2011
using namespace std;

class WINDOW
{    
    protected:
    GtkWidget *window;

    public:
    WINDOW();
    GtkWidget* get_window();
    void set_window(GtkWidget* w);
    void set_title(string s); 
    void show_widget_all();
    static void main_loop();
};

Ответы [ 2 ]

0 голосов
/ 29 июля 2015

Пункт 1: В классах, в которых есть указатели, вы «просто пишете деструктор» для очистки выделенных вами ресурсов, в них нет ничего особенного.

Пункт 2: Нет необходимости делать delete window; или что-то подобное, так как при выходе из gtk_main() окно разрушится для вас.

Пункт 3: Почему бы вам не использовать Gtkmm, поскольку вы используете Gtk + в C ++?

0 голосов
/ 15 марта 2011

В этом случае просто сделайте

window = NULL;

У

delete window;
window = NULL;

в классе, в котором вы создали объект. Это правило помогает избежать ошибок.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...