Название: множественное наследование Отправлено: алексей от Февраль 01, 2009, 11:55 Здравствуйте !!! Есть класс:
Код: class my_dialog : public QDialog //,public for_test реализация: Код: my_dialog::my_dialog(QWidget *parent): QDialog(parent) задача в том, чтобы при вызове слота on_lineEdit_textChanged можно было получить доступ к виджетам основной формы. Класс основной формы - class for_test : public QMainWindow Если пытаюсь наследоваться дополнительно от класса for_test Код: class my_dialog : public QDialog ,public for_test Код: QObject::connect(my_dialog::lineEdit, SIGNAL(textChanged(const QString &)),this, SLOT(my_dialog::on_lineEdit_textChanged(const QString &))); Код: ui_=new Ui::for_testClass; Подскажите, что я делаю не так ??? Среда разработки - Visual Studio 2008. Название: Re: множественное наследование Отправлено: pastor от Февраль 01, 2009, 12:11 Множественное наследование от двух классов, порожденных от QObject, запрещено.
Название: Re: множественное наследование Отправлено: ритт от Февраль 01, 2009, 12:19 написал программу, а она не собирается - где у меня ошибка? © :[|||]:
даже не буду смеяться над твоим кодом - просто скажу: "учи плюсы, учи кутэ." а решение твоей задачи элементарное - в две строчки: сделай my_dialog другом for_test; передай в экземпляр my_dialog указатель на экземпляр for_test. из on_lineEdit_textChanged обращайся к детям my_dialog через переданный ранее указатель. Название: Re: множественное наследование Отправлено: алексей от Февраль 01, 2009, 17:19 написал программу, а она не собирается - где у меня ошибка? © :[|||]: даже не буду смеяться над твоим кодом - просто скажу: "учи плюсы, учи кутэ." а решение твоей задачи элементарное - в две строчки: сделай my_dialog другом for_test; передай в экземпляр my_dialog указатель на экземпляр for_test. из on_lineEdit_textChanged обращайся к детям my_dialog через переданный ранее указатель. Ну то что это программа - я и не говорил....так....пытаюсь перелесть после 9 лет программирования на delphi - там действительно были проекты....а - это всего лишь первые шаги, и что означает термин в программировании "сделай my_dialog другом for_test" ??? Заранее спасибо..... Название: Re: множественное наследование Отправлено: ритт от Февраль 01, 2009, 17:27 Код
Название: Re: множественное наследование Отправлено: алексей от Февраль 01, 2009, 20:13 Спасибо, огромное, Константин за Вашу подсказку, компилер не ругается, но вот когда пытаюсь изменить содержание label в основной форме, данными вводимыми в созданном edit-е ничего не происходит. Делал так:
Код: class for_test : public QMainWindow реализация Код: my_dialog::my_dialog(QWidget *parent): QDialog(parent) Может дело в неверной инициализации - my_test=new for_test(); ??? Заранее спасибо.... Название: Re: множественное наследование Отправлено: ритт от Февраль 01, 2009, 21:23 да, дело именно в этом. настоятельно советую как минимум завести себе справочник по плюсам (и было бы совсем не лишним ещё и читать его), иначе подобные вопросы будут появляться часто и много.
Код
строку my_test=new for_test(); из конструктора my_dialog убрать. |