Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/34: Рейтинг темы: голосов - 34, средняя оценка - 4.50
Чугунные скороходы
 Аватар для ARRAYBOW
17 / 16 / 3
Регистрация: 25.12.2022
Сообщений: 367

Указатель на привязанную функцию можно использовать только для вызова функции

25.11.2024, 16:46. Показов 13959. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Parent является родительским классом.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Logger;
 
class Parent {
public:
    Logger* logger;
    bool work = false;
    thread* functhread;
    string name = "Worker";
    void Main();
    Parent(Logger* l);
    void Exit();
};
 
Parent::Parent(Logger* l) {
    this->logger = l;
    this->work = true;
    this->logger->SendSignal(this, STARTED, "[" + name + "] Starting...");
    this->functhread = new thread(this->Main); // Здесь ошибка
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.11.2024, 16:46
Ответы с готовыми решениями:

Указатель на привязанную функцию можно использовать только для вызова функции
int ident=mflats.at(1).GetIdent; Объясните пожалуйста, почему нельзя использовать такую форму? (функции Int, возвращает нужное мне...

Указатель для вызова виртуальной функции
Помогите разобраться в строении вызова виртуальной функции Если не сложно, объсните каждый указатель #include <iostream> ...

Использовать функции, сохраняя в main () только обращения к функции. Обеспечить передачу параметров в функцию
Помогите пожалуйста с программкой! При решении задачи обязательно использовать функции, сохраняя в main () только обращения к функции....

20
Чугунные скороходы
 Аватар для ARRAYBOW
17 / 16 / 3
Регистрация: 25.12.2022
Сообщений: 367
03.12.2024, 13:34  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Алексей1153 Посмотреть сообщение
останавливать потоки будет Александр Сергеевич?
Функция вызывается перед самим завершением потока (Вызывается функция Parent::Exit(), где поток вызывает Logger::SendSignal(this, STOPPED, ...), а он уже удаляет из вектора)

Добавлено через 9 минут
Цитата Сообщение от Croessmah Посмотреть сообщение
Это неправильное удаление из вектора. Подробнее: Распространенные ошибки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void Logger::RemoveThread(Parent* elem) {
    size_t tc = this->threads.size();
    bool done = false;
    while (!done) {
        tc = this->threads.size();
        cout << to_string(tc) << "\n";
        for (auto iter = this->threads.begin(); iter != this->threads.end(); iter++) {
            cout << (*iter)->getName() << "\n";
            if (tc != this->threads.size()) { break; }
            if (*iter == elem) {
                this->threads.erase(iter);
                done = true;
            }
            else {
                iter++;
            }
        }
    }
}
Вот вывод консоли:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
3
Window-Worker
OS-Worker
2
FileSystem-Worker
2
FileSystem-Worker
2
FileSystem-Worker
2
FileSystem-Worker
2
FileSystem-Worker
2
FileSystem-Worker
2
FileSystem-Worker
2
FileSystem-Worker
2
FileSystem-Worker
Добавлено через 1 минуту
Цитата Сообщение от ARRAYBOW Посмотреть сообщение
if (tc != this->threads.size()) { break; }
Добавил т.к. в любой момент из вектора элемент может удалиться и итератор уже невалидный будет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.12.2024, 13:34

Можно ли передать указатель на функцию как параметр другой функции?
В общем, вопрос. Можно ли, допустим ... int fun1(int x) { ... ... ... return x*1000; }

Можно ли утверждать, что в C++ имя функции - константный указатель на функцию ?
В учебнике &quot;Освой самостоятельно C++ за 24 часа&quot; (Либерти, Хорват) говорится, что таки да. А ещё попадались мнения на форумах, что таки...

можно ли в Matlab создать библиотеку для С++ и использовать ее без вызова Matlab?
Возможно ли с помощью команды deploytool или какой-то другой команды создать библиотеку .dll например функции polyxpoly, чтобы в...

Вычислить значение функции y раскладывая функцию f(x) в ряд Тейлора. Для вычисления f(x) и факториала использовать рекурсивную функцию
Вычислить значение функции y раскладывая функцию f(x) в ряд Тейлора. Для вычисления f(x) и факториала использовать рекурсивную функцию. ...

Можно ли использовать register_post_type только для кастомного типа
Можно ли использовать register_post_type только для создания кастомного типа, но без использования его дополнительных параметров? То есть...


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

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru