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

Статический метод как точка входа в поток - как избавиться - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поиск слова которое встречается чаще всех http://www.cyberforum.ru/cpp-beginners/thread1065307.html
Есть строка определить какое слово встречается в строке чаще всего и вывести его. Помогите пожалуйста очень надо. Заранее благодарен.
C++ Максимальное из чисел, встречающихся в матрице болеее одного раза serial_max=0; serial=1; digit=0; digit_max=0; for (i = 0; i < 3; i++) { for (j = 0; j < 3; j++) { if (a==a) {serial++; digit=a;} else serial=1; if (serial_max<serial) {serial_max=serial; serial=0;digit_max=digit;} } } http://www.cyberforum.ru/cpp-beginners/thread1065304.html
Вычислить x C++
помогите решить пример пожалуйста)самым простым способом срочно надо!зарание спасибо вот задание
Максимальный элемент динамического двумерного массива C++
Напишите пожалуйста программу которая находила бы максимальный элемент динамического двумерного массива
C++ boost regex_match - Баг? http://www.cyberforum.ru/cpp-beginners/thread1065282.html
Снова неразрешимая проблема ( По документации, функции поиска regex_match/regex_search должны заполнять (делать не пустым) объект с результатами поиска, только если находят все/часть регулярного выражения в строке. В этом коде ну никак не может совпадать ни часть, ни все регулярное выражение. Но объект what на выходе НЕ пустой. #include <boost/regex.hpp> #include <iostream> int main() ...
C++ выдает ошибку на втором файле , подскажите по сути программа должна в 1 и 2 файле найти одинаковые слова и записать в 3 . #include "stdafx.h" #include "iostream" #include "algorithm" #include "string" #include "iterator" #include "fstream" #include "set" using namespace std; подробнее

Показать сообщение отдельно
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
13.01.2014, 23:04     Статический метод как точка входа в поток - как избавиться
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
27
28
29
30
31
32
33
34
35
36
37
class primer
{
public:
  void funcmain(int i);
};
 
struct ObjAndParam
{
  primer* obj;
  int param;
};
 
static void ThreadFun(void* data)
{
  ObjAndParam* objAndParam = static_cast<ObjAndParam*>(data);
  objAndParam->obj->funcmain(objAndParam->param);
}
 
 
Простейший вариант:
Через data нужно передать как-то объект и параметры для вызова.
Значит перед вызовом нужно создать объект ObjAndParam и посетить
в него нужные данные.
Но дальше начинаются сложности.
Если мы отдаим указатель на объект на стеке - значит нужно
как-то гарантировать, что ThreadFun вызовытся до разрушения
этого объекта. Если его создавать динамически, то нужно
как-то гарантированно его удалять. + не забываем о том,
что объект пример должнен быть живым в момент вызова
метода из другого потока. Добавляем сюда обработку
всяких исключений и ошибок для надежной работы, добавляем
возможность это делать для объектов любых типов, для вызова
любых методов с любым (ну даже с ограниченным) количеством
аргументов любых типов - получаем хитрую шаблонную магию
и всякие другие фокусы для надежной работы. Осознаем что это
все достаточно сложно и возвращаемся к выбору какого-нибудь
готового решения.
 
Текущее время: 02:42. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru