Цитата(gordmiand @ 12.11.2010, 22:30 ) | | а как мне обеспечить возможность доступа к членам (per1, mas[]) класса my_thr из других, например из mainwindow.cpp, модулей программы? подскажите пож-та ны вышеуказанном примере... |
если я правильно понял, вопрос про организацию кода программы? если да, тогда, как вариант (!!!), можно хранить ссылку(или указатель) на объект класса my_thr внутри класса mainwindow Шаги: 1) подключи файл my_thr.h в заголовке mainwindow.h
| Код | // файл mainwindow.h #include "my_thr.h"
|
2) создай ссылку или указатель, в переменных - членах класса MainWindow, на объект класса my_thr, инициализируй ее в конструкторе
| Код | class MainWindow { public: // конструктор - инициализирует переменную член класса m_MyThread - теперь у тебя есть доступ к объекту, а вместе с ним и к его переменным MainWindow(my_thr * thread = 0) : m_MyThread(thread)
private: //переменная член на твой поток my_thr * m_MyThread; };
|
Другие варианты: - сделать объект класса my_thread статическим (не есть хорошо), как вариант синглтон, и обращаться к нему через статические методы. в этом случае не придется изменять конструктор MainWindow и lдобавлять туда переменные, но возникает сложность следить за завершением потока и синхронизацией данных, учитывая, что у тебя там не все атомарные типы (short []) - делать общие переменные внутри класса my_thr, то есть сам класс может быть создан внутри стека, но работает он с какими - то глобальными данными... в этом случае возникает сложность синхронизации этих данных,
ну это, что пришло на ум.... я бы наверное сделал через синглон, тогда поток был бы общим для всех классов приложения, запуск и завершение потока я бы вынес в конструктор и деструктор основного окна приложения соотвественно
как - то так... ЭТО если я правильно понял, то чего ты спрашиваешь |