crossplatform.ru

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


  Ответ в локальные объекты конструктора. ошибка
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Алексей1153 Дата 12.7.2012, 19:19
  нет, конечно

С чего ты это решил ? )
__ilya__ Дата 12.7.2012, 14:07
  Алексей1153,
Тогда получается что все действия программы происходят внутри тела конструктора?
Алексей1153 Дата 12.7.2012, 8:54
  ты не создаёшь тут локальных объектов.

Локальный тут только указатель button - он уничтожится по выходу из функции конструктора
Гость___ilya___* Дата 11.7.2012, 23:20
  спасибо помогло! Скажите а в чем смысл создавать объекты локально, в конструкторе? Почему.бы их не сделать членами класса? Я имею в виду кнопки, индикаторы и т.п.
Алексей1153 Дата 11.7.2012, 12:00
 
Цитата
class Widget:public QWidget
{
Q_OBJECT //не забыто ?

}


ну и

Цитата
QPushButton *button = new QPushButton("button", this);
__ilya__ Дата 9.7.2012, 17:23
  и все-же почему не получается создать, динамически, локально в конструкторе
sidsukana Дата 9.7.2012, 13:26
  Qt Заботится об удалении QObject объектов, родителями которых были QObject объекты тоже.

Obj1* obj1 = new Obj1();
Obj2* obj2 = new Obj2(obj1);

delete obj1;


В данном контексте obj1 удалит за собой и obj2 (на сколько я знаю)

Еще есть метод deleteLater() он вроде как ставит в очередь на удаление.
__ilya__ Дата 9.7.2012, 12:27
  и есче вопрос-
если у меня члены класса(унаследаваного от QWidget), указатели, а в конструкторе я для них динамически выделяю память(new), нужен-ли деструктор?
везде написано что Qt сама заботится об удалении объектов.
__ilya__ Дата 9.7.2012, 9:55
  читал макса шлее Qt4.5.
там в примерах все объекты, кнопки, слайдеры, надписи и Т.П. создаются в конструкторе локально. почему-то когда я создаю локальный обьект( динамически), в конструкторе при сборке выдает ошибку. может потому-что я использую Qt4.8.
[code]
Widget::Widget(QWidget *parent)
: QWidget(parent)
{
//...
QPushButton *button = new QPushButton("button");
//...
}

D:\QtCreator_test\SoundPlaer\widget.cpp:-1: In constructor 'Widget::Widget(QWidget*)':

но все работает -если я создаю кнопки как члены класса(указатели). а уже в конструкторе динамически выделяю для них память.

Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 27.4.2024, 20:18