Переопределение конструктора |
Здравствуйте, гость ( Вход | Регистрация )
Переопределение конструктора |
alzasr |
14.12.2012, 8:59
Сообщение
#1
|
Студент Группа: Участник Сообщений: 21 Регистрация: 6.10.2011 Пользователь №: 2926 Спасибо сказали: 0 раз(а) Репутация: 0 |
Есть классы
мне надо, что бы в конструктор MyClass2 в качестве родителя передавался не просто QWidget, а MyClass, т.е.
но при сборке выходит ошибка, что MyClass* не может быть преобразован в QWidget*. Можно конечно конструктор сделать так
добавив в класс переменную MyClass *myclass; Экземпляр класс MyClass2 создается в MyClass, т.е. вызов конструктора будет myclass2 = new MyClass2(this,this); Но мне интересно, почему не работает конструкция с 1 параметром? |
|
|
mezmay |
14.12.2012, 9:29
Сообщение
#2
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Вообще-то этот код компилируется
Сообщение отредактировал mezmay - 14.12.2012, 9:49 |
|
|
alzasr |
14.12.2012, 10:21
Сообщение
#3
|
Студент Группа: Участник Сообщений: 21 Регистрация: 6.10.2011 Пользователь №: 2926 Спасибо сказали: 0 раз(а) Репутация: 0 |
Приношу извинения, я не совсем правильно описал ситуацию.
У меня 2 класса определены в 2 заголовочных файлах. Оба инклюдят друг друга, Вот пример MainWindow.h
tt.h
в этом случае происходит ошибка /media/user/workspace/test2-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK_______/../test2/tt.h:12: ошибка: expected ')' before '*' token Я пробовал заменять #include "mainwindow.h" в tt.h на class MainWindow; ошибка /media/user/workspace/test2-build-desktop-Desktop_Qt_4_8_1_for_GCC__Qt_SDK_______/../test2/tt.cpp:9: ошибка: no matching function for call to 'QWidget::QWidget(MainWindow*&)' |
|
|
mezmay |
14.12.2012, 10:38
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Так не делают, двойной инклюд делать нельзя, и вообще это плохое решение. Но можно
в tt.h вместо
сделать т.к. тебе в tt.h тебе нужен только указатель,а в tt.cpp уже сделать
сигналы и слоты ведь не зря придумали, в том числе чтобы перекрестными указателями не страдать Сообщение отредактировал mezmay - 14.12.2012, 10:39 |
|
|
alzasr |
14.12.2012, 10:48
Сообщение
#5
|
Студент Группа: Участник Сообщений: 21 Регистрация: 6.10.2011 Пользователь №: 2926 Спасибо сказали: 0 раз(а) Репутация: 0 |
Спасибо, помогло.
|
|
|
Текстовая версия | Сейчас: 22.11.2024, 16:35 |