![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
EnergoHokum |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 600 Регистрация: 10.11.2006 Где: Россия, Ставропол ь Репутация: 3 Всего: 6 |
Доброго времени суток всем. Скажите, если есть такой класс
компилятор ругается, что static-функция не может иметь доступ к переменным класса. Есть ли возможность всё-таки достучаться до них из этой функции? Добавлено через 6 минут и 45 секунд Всё, вопрос решён. Передал в thFunc (void*)this, а там получил доступ как ((TestThread*)lpParam)->i; |
|||
|
||||
Smarts |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 23.4.2007 Репутация: 2 Всего: 2 |
Из статической функции вызывай обычную - в ней и пиши реализацию потока.
|
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 12 Всего: 92 |
||||
|
||||
Smarts |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 23.4.2007 Репутация: 2 Всего: 2 |
Обычная - не статическая
![]() Только ее нельзя вызвать из статической функции, поэтому надо передать указатель на this и указатель на реализацию потока. Вот мой класс для подобных целей, может быть кому-нибудь пригодится. Новый класс надо объявить потомком от CThreadingClass и перегрузить виртуальную функцию потока. При длительных вычислениях желательно переодически проверять stopFlag для легкого завершения потока извне.
|
||||
|
|||||
-Kp0T- |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 61 Регистрация: 23.2.2007 Репутация: 2 Всего: 2 |
2 Smarts:
Зачем усложнять жизнь, все можно куда проще разрешить. 2 EnergoHokum: Подправил немного твой класс:
Здесь дело в том что static-функция не имеет неявного this указателя (то же самое с глобальными friend функциями к классу). Поэтому для доступа надо иметь указатель на экземпляр класса this. ---- Млин, сорри, не углядел снизу то что ты добавил, вообщем верно ![]() Это сообщение отредактировал(а) -Kp0T- - 10.6.2007, 15:30 |
||||
|
|||||
Smarts |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 23.4.2007 Репутация: 2 Всего: 2 |
Люблю когда все структурировано, особенно если требуется написать не такой простой класс без иерархии, как CTestThread ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |