Russian Qt Forum

Qt => Вопросы новичков => Тема начата: aviabunin от Октябрь 09, 2011, 16:08



Название: Как в порождаемый класс передать объект основного класса?
Отправлено: aviabunin от Октябрь 09, 2011, 16:08
Основной класс:
Код:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "mypaint.h"

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
     MainWindow(QWidget *parent = 0);
    ~MainWindow();
    int i;

    myPaint *wgt;

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H
Порождаемый класс:
Код:
#ifndef MYPAINT_H
#define MYPAINT_H

#include <QWidget>

class myPaint : public QWidget
{
    Q_OBJECT
public:
    myPaint(QWidget *parent = 0);

};

#endif // MYPAINT_H
В кострукторе порождаемого класса хотелось бы поставить второй параметр
типа "MainWindow *wind=0". Чтобы использовать данные, определенные
в основном классе. Как это сделать?
Спасибо, за любую ссылку или подсказку.


Название: Re: Как в порождаемый класс передать объект основного класса?
Отправлено: kambala от Октябрь 09, 2011, 16:22
так а что мешает? бери и ставь. ссылка - любая статья по конструкторам в С++.


Название: Re: Как в порождаемый класс передать объект основного класса?
Отправлено: aviabunin от Октябрь 09, 2011, 16:29
Записывая в порожденном классе второй параметр
Код:
MainWindow *wind
я должен указать  тип главного класса MainWindow. Но как она может увидеть тип MainWindow?


Название: Re: Как в порождаемый класс передать объект основного класса?
Отправлено: kambala от Октябрь 09, 2011, 16:35
добавить перед описанием класса class MainWindow; а в цпп-файле - #include "MainWindow"

да, и, вообще говоря, тебе вряд ли тебе там нужно 2 параметра - скорее всего твоё главное окно и будет родителем


Название: Re: Как в порождаемый класс передать объект основного класса?
Отправлено: aviabunin от Октябрь 09, 2011, 16:44
Вроде прокатило. Спасибо!
Искал бы я сейчас по книжкам. А интересно поискать ...
А то вроде во втором классе ставил
Код:
include "MainWindow"
Получалось, что оба заголовочных файла друг на друга ссылаются - вроде нелогично.
На предложенный вариант как то глаз не падал, когда книжки читал .


Название: Re: Как в порождаемый класс передать объект основного класса?
Отправлено: kambala от Октябрь 09, 2011, 16:49
надеюсь ты пользуешься т.н. include guard в заголовочных файлах?
Код
C++ (Qt)
// myclass.h
#ifndef MYCLASS_H
#define MYCLASS_H
 
...
 
#endif // MYCLASS_H