Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Satansoft
8 / 8 / 1
Регистрация: 27.02.2012
Сообщений: 724
#1

Обращение потока к функции-члену класса - C++

19.11.2014, 23:34. Просмотров 663. Ответов 22
Метки нет (Все метки)

Есть Класс MainWindow, функцией-членом которой выступает Reader(), при попытке обратиться поток к данной функции-члену из main'a через экземпляр класса w

C++
1
2
3
4
for(i=0;i<M;i++)
        {
           RE[i] = std::thread(w.Reader);;
        }
сыпется ошибка

no matching function for call to 'std::thread::thread(<unresolved overloaded function type>)
возможно функция thread не понимает такое обращение, тогда как понимает?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2014, 23:34     Обращение потока к функции-члену класса
Посмотрите здесь:

Обращение к приватному члену класса внутри пространства имён - C++
Здравствуйте. Вот у меня есть код: #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;vector&gt; #include &lt;string&gt; using namespace...

Доступ к функции-члену другого класса - C++
Каким образом можно получить доступ из одного класса к функции члену другого класса???

Не хватает прав доступа к закрытому члену класса из дружественной функции - C++
Здравтсвуйте. Есть класс LifeMap. файл LifeMap.hpp #ifndef LIFEMAP_HPP #define LIFEMAP_HPP /* * LifeMap - класс для...

Обращение к члену структуры - C++
В чем разница между: a-&gt;b и a.b

Обращение к члену protected - C++
Добрый день, помогите разобраться Обращение к члену protected, сообщается ошибкой Код класса: #include &lt;iostream&gt; #include &lt;string&gt;...

Обращение к члену связного списка - C++
Прошу помощи в решении Стоит задача обращения к члену связного списка(того списка что выводится на экран файлового менеджера),затем с...

Обращение к статической функции класса - C++
Всем привет! есть Number.h: using namespace std; #pragma once class Number { public: Number(void);

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Max Dark
шКодер самоучка
1813 / 1614 / 588
Регистрация: 09.10.2013
Сообщений: 3,618
Записей в блоге: 6
Завершенные тесты: 2
20.11.2014, 01:56     Обращение потока к функции-члену класса #16
Так перенесите массивы потоков в класс...
Satansoft
8 / 8 / 1
Регистрация: 27.02.2012
Сообщений: 724
20.11.2014, 02:08  [ТС]     Обращение потока к функции-члену класса #17
Цитата Сообщение от Cra3y Посмотреть сообщение
Так перенесите массивы потоков в класс...
засунуть их в функцию внутри класса и из неё их вызывать?

Добавлено через 6 минут
Напрямую создавать треды снова не выходит, хоть они и в одном классе

C++
1
2
3
4
5
 for(i=0;i<N;i++)
        {
           WR[i] = std::thread(Writer);
 
        }
no matching function for call to 'std::thread::thread(<unresolved overloaded function type>)
Max Dark
шКодер самоучка
1813 / 1614 / 588
Регистрация: 09.10.2013
Сообщений: 3,618
Записей в блоге: 6
Завершенные тесты: 2
20.11.2014, 06:09     Обращение потока к функции-члену класса #18
C++
1
std::thread(&decltype(*this)::Reader, this);
Добавлено через 3 минуты
Просто запомните, что метод класса это функция со скрытым параметром - объектом к которому применяется данный метод
Satansoft
8 / 8 / 1
Регистрация: 27.02.2012
Сообщений: 724
20.11.2014, 18:06  [ТС]     Обращение потока к функции-члену класса #19
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
int call_f()
    {
    std::thread WR[N];
    std::thread RE[M];
    int i;
 
        for(i=0;i<N;i++)
        {
           WR[i] = std::thread(&decltype(*this)::Writer, this);
 
        }
        for(i=0;i<M;i++)
        {
           RE[i] = std::thread(&decltype(*this)::Reader, this);
 
        }
        for(i=0;i<N;i++)
        {
            WR[i].join();
        }
        for(i=0;i<M;i++)
        {
            RE[i].join();
        }
        return 0;
    }
decltype evaluates to 'MainWindow&', which is not a class or enumeration type
Засунув в один класс, напрямую не обратиться к методу, уже свинство... использовал ваш метод доступа, так через указатель this даже не считает его классом...где ошибка-то?
Max Dark
шКодер самоучка
1813 / 1614 / 588
Регистрация: 09.10.2013
Сообщений: 3,618
Записей в блоге: 6
Завершенные тесты: 2
20.11.2014, 18:08     Обращение потока к функции-члену класса #20
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
std::thread(&MainWindow::Reader, this)
Satansoft
8 / 8 / 1
Регистрация: 27.02.2012
Сообщений: 724
20.11.2014, 18:13  [ТС]     Обращение потока к функции-члену класса #21
Cra3y, а ежели теперь вызвать метод call_f() из кнопки (дочернего класса), использовать такое же обращение?
Max Dark
шКодер самоучка
1813 / 1614 / 588
Регистрация: 09.10.2013
Сообщений: 3,618
Записей в блоге: 6
Завершенные тесты: 2
20.11.2014, 18:21     Обращение потока к функции-члену класса #22
в общем случае
C++
1
std::thread(&имя_класса::имя_метода, указатель_на_объект);
Добавлено через 1 минуту
c this можно внутри класса которому принадлежит вызываемый метод
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2014, 18:28     Обращение потока к функции-члену класса
Еще ссылки по теме:

Как обратиться к члену класса - C++
Здравствуйте! Есть такой код: class ClassA { ... public: int t; }; class ClassB:public ClassA

Не могу получить доступ к члену класса - C++
Недавно начал изучать C++ и SDL и появилась проблема с кодом. Я могу создать поверхность(см. код) с помощь thisFunctionWoks, но не могу...

Перегрузка оператора доступа к члену класса - C++
Как осуществляется перегрузка оператора доступа к члену класса? Если можно, то приведите пример

Не могу получить доступ к члену класса - C++
Прошу сильно не пинать - только начинаю изучение ООП. Собственно пишу морской бой. Описал класс &quot;Kreiser&quot; - объект, который содержит в...

Доступ из нестатического метода к статическому члену класса - C++
Привет! Подскажите, пожалуйста, как можно обратиться из нестатического метода класса к статическому члену? Вот мой метод: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Satansoft
8 / 8 / 1
Регистрация: 27.02.2012
Сообщений: 724
20.11.2014, 18:28  [ТС]     Обращение потока к функции-члену класса #23
Cra3y, это форма обращения треда к методам в пределах одного класса. Класс находится в mainwindow.h, а дочерние классы (кнопки, формы) объявляются в mainwindow.cpp, как из одной из этих кнопок, обратиться к методу класса, а именно Call_f()? Необходимо создание тредов по нажатию на кнопку.
Yandex
Объявления
20.11.2014, 18:28     Обращение потока к функции-члену класса
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru