crossplatform.ru

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

> Проблема с конструктором при создании формы
Delphist
  опции профиля:
сообщение 14.8.2008, 9:46
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 41
Регистрация: 4.8.2008
Из: Россия
Пользователь №: 249

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




Репутация:   0  


Я хочу в своем классе создать два конструктора:
/******MyClass.h********/

class MyClass : public QMainWindow
{
    Q_OBJECT

public:
    MyClass(QWidget *parent = 0, Qt::WFlags flags = 0);                             //конструктор №1
    MyClass(CSharedV &v, QWidget *parent = 0, Qt::WFlags flags = 0);  //конструктор №2
...
}

    
/******MyClass.cpp******/

MyClass::MyClass(QWidget *parent, Qt::WFlags flags)
    :QMainWindow(parent, flags)
{
    sharedDataModel = new SharedDataModel(this);
    ui.setupUi(this);    
    ui.treeView->setModel(sharedDataModel);
    ui.treeView->header()->setResizeMode(0, QHeaderView::Stretch);
    ui.treeView->header()->setResizeMode(1, QHeaderView::Stretch);
}

MyClass::MyClass(CSharedV &v, QWidget *parent, Qt::WFlags flags)
    :QMainWindow(parent, flags)
{
     MyClass(parent, flags);
    setShared(v);
}


Прикол в том что если я вызываю конструктор№2, то почему форма создается без
дерева, почему это происходи и как сделать чтобы все нормально заработало?

Сообщение отредактировал Delphist - 14.8.2008, 9:49
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Delphist
  опции профиля:
сообщение 14.8.2008, 10:05
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 41
Регистрация: 4.8.2008
Из: Россия
Пользователь №: 249

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 14.8.2008, 9:57) *
это скорее вопрос по С++
Вынеси всю инициализацию в отдельную функцию:

А почему нельзя так как я привел, у нас Delphi без проблем это делает, а тут что за ассемблер
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 14.8.2008, 10:16
Сообщение #3


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

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

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




Репутация:   17  


Цитата(Delphist @ 14.8.2008, 11:05) *
А почему нельзя так как я привел, у нас Delphi без проблем это делает, а тут что за ассемблер

Насколько я знаю: в С++ в конструкторе можно вызывать конструктор предка, а не другой свой же конструктор. Поэтому следует сделать, как описал Litkevich Yuriy
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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




RSS Текстовая версия Сейчас: 14.1.2025, 12:29