crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

Rocky
  опции профиля:
сообщение 7.2.2010, 21:25
Сообщение #1


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Всем привет!

Я все про кнопки )). Решил добавить к круглым овальным) кнопкам треугольные )). Решил через наследование все это организовать. Вот такой вот код:

class CCustomButton : public QPushButton
{
    Q_OBJECT

protected:
    CCustomButton(QWidget *pParent);
    CCustomButton(const QString& sText, QWidget *pParent = 0);
    virtual ~CCustomButton();

protected:
..........
}



class CRoundButton : virtual public CCustomButton
{
    Q_OBJECT

public:
    CRoundButton(QWidget *pParent);
    CRoundButton(const QString& sText, QWidget *pParent = 0);
    ~CRoundButton();
........
}



class CTriangleButton : virtual public CCustomButton
{
    Q_OBJECT

public:
    CTriangleButton(QWidget *pParent);
    CTriangleButton(const QString& sText, QWidget *pParent = 0);
    ~CTriangleButton();
.........
}


Ну вот положил на форму пару кнопок, сделал им promote to CRoundButton и CTriangleButton. Все работает, все хорошо... Но меня смущает очень сильно одна вещь. При выходе из программы не вызываются деструкторы объектов этих кнопок... Программа вроде память не жрет.. но непонятно как так?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Rocky
  опции профиля:
сообщение 7.2.2010, 22:42
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 530
Регистрация: 22.12.2008
Из: Санкт-Петербург
Пользователь №: 463

Спасибо сказали: 22 раз(а)




Репутация:   7  


Цитата(BRE @ 7.2.2010, 22:37) *
Не было бы никаких проблем, при закрытии процесса вся память возвращается системе, не зависимо от того, делал ты delete/free.

ну это при выходе из программы.. А если какой-то объект часто создается/уничтожается.. тогда ведь и получаем memory leaks. Если ресурсы которые он взял при своем создании корректно не освободились при его уничтожении.

Цитата
Что бы отработали деструкторы кнопок, нужно что бы сработал деструктор окна, которому они принадлежат.

Стало быть он не срабатывает?... У этих кнопок куча виджетов-предков... Завтра попробую тестовый пример тогда написать и погонять
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 7.2.2010, 22:51
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Цитата(Rocky @ 7.2.2010, 22:42) *
ну это при выходе из программы.. А если какой-то объект часто создается/уничтожается.. тогда ведь и получаем memory leaks. Если ресурсы которые он взял при своем создании корректно не освободились при его уничтожении.

Ну так мы про выход и говорим...
Если ты в main будешь разрушать виджет, на котором расположены твои кнопки, тогда и их деструкторы будут вызываться.



Цитата(Rocky @ 7.2.2010, 22:49) *
Чесгря я как-то видимо стороной прошел...

Ага-ага. ;)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Rocky   Вызов деструкторов при наследовании   7.2.2010, 21:25
- - Litkevich Yuriy   Цитата(Rocky @ 8.2.2010, 0:25) При выходе...   7.2.2010, 22:18
- - DIMEDROLL   нужно везде передавать QWidget *pParent, во всех к...   7.2.2010, 22:22
- - Rocky   ну как )) просто написал там что-то типа int z = 0...   7.2.2010, 22:33
|- - BRE   Цитата(Rocky @ 7.2.2010, 22:25) А по-пово...   7.2.2010, 22:37
|- - DIMEDROLL   Цитата(Rocky @ 7.2.2010, 21:33) А как тог...   7.2.2010, 22:40
- - Rocky   просто пока конечно нигде у меня такого нет, но вд...   7.2.2010, 22:37
|- - BRE   Цитата(Rocky @ 7.2.2010, 22:37) и лучше б...   7.2.2010, 22:45
- - Rocky   Цитата(BRE @ 7.2.2010, 22:37) Не было бы ...   7.2.2010, 22:42
|- - BRE   Цитата(Rocky @ 7.2.2010, 22:42) ну это пр...   7.2.2010, 22:51
- - Rocky   Цитата(BRE @ 7.2.2010, 22:45) Деструктор ...   7.2.2010, 22:49
- - Litkevich Yuriy   Цитата(Rocky @ 8.2.2010, 1:49) А почему о...   7.2.2010, 22:59
- - Rocky   Цитата(Litkevich Yuriy @ 7.2.2010, 22:59)...   7.2.2010, 23:01
- - Litkevich Yuriy   Rocky, вот нашёл фразу: Цитата...унаследован от QO...   7.2.2010, 23:16
|- - DIMEDROLL   Цитата(Litkevich Yuriy @ 7.2.2010, 22:16)...   7.2.2010, 23:41
- - Elfinit   Чем создавать подклассы кнопки для придания ей как...   17.2.2010, 16:55


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 27.6.2025, 9:32