8 / 8 / 1
Регистрация: 01.11.2010
Сообщений: 157
|
|
1 | |
класс Timer20.09.2012, 18:26. Показов 10132. Ответов 19
Метки нет (Все метки)
создать класс timer который через установленный интервал времени вызывает заданную функцию.
Вот такая вот задача, только никак даже сообразить не могу, как это возможно реализовать?
0
|
20.09.2012, 18:26 | |
Ответы с готовыми решениями:
19
Не удаётся связать два файла timer.h и timer.cpp Есть класс A и класс B, класс B вложен в класс A и вложен в него, как классу B получить доступ к переменным класса A просто по имени? Класс таблиц баз данных и класс записей в таблице(реляционная таблица). Предусмотреть класс связей между таблицами Класс: Разработать абстрактный класс класс Point для задания координаты... |
39 / 39 / 5
Регистрация: 14.09.2012
Сообщений: 85
|
||||||
20.09.2012, 19:00 | 2 | |||||
есть ограничения на функции?
Добавлено через 22 минуты
1
|
8 / 8 / 1
Регистрация: 01.11.2010
Сообщений: 157
|
|
20.09.2012, 20:20 [ТС] | 3 |
нет ограничений, надо разобраться в вашем коде, очень интересно, спасибо
Прикол в том, что неизвестно сколько параметров у функции будет, поэтому я сам запутался
0
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
20.09.2012, 20:23 | 4 |
veverix, time это имя функции стандартной библиотеки. Не нужно выбирать данный идентификатор для переменных. Даже форум подсветил имя синим цветом.
0
|
8 / 8 / 1
Регистрация: 01.11.2010
Сообщений: 157
|
|
20.09.2012, 20:41 [ТС] | 5 |
так и как сделать так, что бы можно было задавать функцию, так что бы класс не знал, сколько у нее параметров и что она возвращает? Или это невозможно?
0
|
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
||||||
20.09.2012, 20:58 | 6 | |||||
BTR, вот простой пример
Код
Execution output: Thu Sep 20 19:56:59 2012 Thu Sep 20 19:57:02 2012
2
|
39 / 39 / 5
Регистрация: 14.09.2012
Сообщений: 85
|
|
20.09.2012, 21:04 | 7 |
Так я ж ctime не подключал. Ну ладно, если риск конфликта то переименую)
Добавлено через 2 минуты По идее нельзя. Если без параметров или с определенным количеством через шаблоны еще можно попробывать задать, то не зная количество аргументов ей просто не задашь адрес (если речь идет о классе, для каждого из объектов которого можно создать свою функцию)
0
|
8 / 8 / 1
Регистрация: 01.11.2010
Сообщений: 157
|
|||||||||||
20.09.2012, 21:20 [ТС] | 8 | ||||||||||
на VS 2010 не компилируется
Добавлено через 4 минуты Переделал код и скомпилировал, идею понял, спасибо, но теперь непонятно, если я создал функцию с другими параметрами, то как указать эти параметры при вызове? Добавлено через 6 минут Например такую функцию
0
|
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
|
||||||
20.09.2012, 21:53 | 9 | |||||
Конечно, писал же я под Линукс.
Либо с попощью функции с переменным числом параметров, либо с объединить все параметры в структуру. Я бы выбрал второй.
Код
Execution output: Thu Sep 20 20:51:06 2012 Thu Sep 20 20:51:09 2012 5
1
|
8 / 8 / 1
Регистрация: 01.11.2010
Сообщений: 157
|
||||||
20.09.2012, 22:43 [ТС] | 10 | |||||
а как тогда ты вызовешь такую функцию?
а покажи пожалуйста пример, который использует функцию с переменным числом параметров, заранее благодарен
0
|
8 / 8 / 1
Регистрация: 01.11.2010
Сообщений: 157
|
||||||||||||||||||||||||||
20.09.2012, 23:24 [ТС] | 12 | |||||||||||||||||||||||||
main.cpp
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall MTimer::Timer<void (__cdecl*)(struct forFunc),struct forFunc>::Timer<void (__cdecl*)(struct forFunc),struct forFunc>(int,void (__cdecl*)(struct forFunc),struct forFunc)" (??0?$Timer@P6AXUforFunc@@@ZU1@@MTimer@@QAE@HP6AXUforFunc@@@Z0@Z) в функции _main 1>C:\Users\Andrey\documents\visual studio 2010\Projects\cxx\Debug\cxx.exe : fatal error LNK1120: 1 неразрешенных внешних элементов Добавлено через 17 минут Все, вот так заработало
но как создать такой же вариант с функцией с переменным числом параметров? Просто в данном варианте не получается вызвать функцию без параметров если не сделать так
0
|
8 / 8 / 1
Регистрация: 01.11.2010
Сообщений: 157
|
|
20.09.2012, 23:36 [ТС] | 14 |
с этим разобрался, просто интересно, как сделать тоже самое, что и со структурой, только с переменных количеством агрументов. Подскажите как?
0
|
8 / 8 / 1
Регистрация: 01.11.2010
Сообщений: 157
|
|||||||||||
21.09.2012, 00:09 [ТС] | 16 | ||||||||||
и что получается, для каждой своей функции придется писать структуру?
Добавлено через 44 секунды или написать общую структуру для всех функций? А если программа большая, то тогда уже будет неудобно использовать класс... Добавлено через 14 минут например как я вызову функцию pow?
0
|
~ Эврика! ~
1256 / 1005 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
|
|||||||||||
21.09.2012, 00:40 | 17 | ||||||||||
Тут такое дело, что функцию вы вызываете асинхронно. То есть то, что вы там передаёте в аргументах, уже может быть неактуальным и вообще не существовать на момент фактического вызова.
Поэтому чаще всего стараются передавать в такие асинхронные штуки обещание выполнения функции (thunk) — функцию без аргументов, которая вызывает ваш pow с теми сохранёнными значениями, которые были переданы конструктору обещания. Тогда это обещание можно спокойно выполнить, когда придёт время, так как у него будут личные копии аргументов, которые никуда не пропадут. Можно писать это руками, но есть уже готовый сахарок: boost::bind / лямбды C++11. Функций с переменным числом параметров вроде
1
|
Kastaneda
|
21.09.2012, 09:48
#18
|
Не по теме: Вчера еще наткнулся на эту тему, я то думал надо сделать что-нибудь типа QTimer::singleShot, даже на тему подписался, а тут ...
1
|
21.09.2012, 10:22 | 20 |
Там на С++ пример практически тоже, что здесь написали, только в "другой руке".
На Си больше на правду похоже. Не по теме: Нагуглить я б тоже смог, интересно было, что здесь напишут:)
1
|
21.09.2012, 10:22 | |
21.09.2012, 10:22 | |
Помогаю со студенческими работами здесь
20
Отдельно класс данных, класс формул и главный класс Timer начало змейки Timer почему не работает? Timer в консольном приложении Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |