Russian Qt Forum
Апрель 29, 2024, 00:52 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как в порождаемый класс передать объект основного класса?  (Прочитано 3005 раз)
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". Чтобы использовать данные, определенные
в основном классе. Как это сделать?
Спасибо, за любую ссылку или подсказку.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #1 : Октябрь 09, 2011, 16:22 »

так а что мешает? бери и ставь. ссылка - любая статья по конструкторам в С++.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
aviabunin
Гость
« Ответ #2 : Октябрь 09, 2011, 16:29 »

Записывая в порожденном классе второй параметр
Код:
MainWindow *wind
я должен указать  тип главного класса MainWindow. Но как она может увидеть тип MainWindow?
« Последнее редактирование: Октябрь 09, 2011, 16:31 от aviabunin » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #3 : Октябрь 09, 2011, 16:35 »

добавить перед описанием класса class MainWindow; а в цпп-файле - #include "MainWindow"

да, и, вообще говоря, тебе вряд ли тебе там нужно 2 параметра - скорее всего твоё главное окно и будет родителем
« Последнее редактирование: Октябрь 09, 2011, 16:42 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
aviabunin
Гость
« Ответ #4 : Октябрь 09, 2011, 16:44 »

Вроде прокатило. Спасибо!
Искал бы я сейчас по книжкам. А интересно поискать ...
А то вроде во втором классе ставил
Код:
include "MainWindow"
Получалось, что оба заголовочных файла друг на друга ссылаются - вроде нелогично.
На предложенный вариант как то глаз не падал, когда книжки читал .
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #5 : Октябрь 09, 2011, 16:49 »

надеюсь ты пользуешься т.н. include guard в заголовочных файлах?
Код
C++ (Qt)
// myclass.h
#ifndef MYCLASS_H
#define MYCLASS_H
 
...
 
#endif // MYCLASS_H
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.068 секунд. Запросов: 22.