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

Как в конструкторе класса передать параметром указатель на функцию? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поиск проблемы http://www.cyberforum.ru/cpp-beginners/thread336095.html
#include <iostream> #include <cstring> struct kk{ int k, s; }p; using namespace std; int main()
C++ Отследить ввод с клавиатуры... Доброго времени суток! Господа прошу помочь решить такую задачу: в консольном приложении нужно запретить ввод символов и цыфр, только буквы... Посоветовали мне "юзать getch()" но как его использовать ни примеров, ни объяснений я не смог найти. т.е. я смог после ввода прочитать коды введенных символов, но хотелось бы прямо во время нажатия на клавишу блокировать ненужные символы (знаки и... http://www.cyberforum.ru/cpp-beginners/thread336091.html
Аналог модуля Делфи в С++ C++
Соббсно, в теме и есть вопрос. Есть модуль в делфях, а что есть аналогичное в С++??? . У нас преподают паскаль и тут задача поступила небольшая - написать программку(неважно какую) , используя модули. Я так чуток посмотрел, показалось, что это аналог классам. Но уж лучше спросить. Спасиб. Добавлено через 1 час 9 минут Неужели никто не знает???. Развейте, пожалуйста, мои сомнения!!!))
C++ массив string
void func(string *mas) { //здесь } int main() { string s = { "one",
C++ Дана квадратная матрица http://www.cyberforum.ru/cpp-beginners/thread336068.html
прога на Си помогите решить дана квадратная матрица порядка N (элементы не отрицательны) Получить вторую матрицу. Элемент второй матрицы=1 i+j если сумма индексов равна элементу =-1 если модуль разности |i-j| равен элементу =0 в противном случае за ранее спасибо
C++ даны натуральные числа N прога на Си помогите решить Даны натуральные числа N b1,...,bn. Вычислить f(b0)+f(b1)+....f(bn) f(x)= x^2; x кратно 3 f(x)= x; если х при делении на 3 дает остаток 1 f(x)= x/3; в остальных случаях подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,270
25.07.2011, 20:59     Как в конструкторе класса передать параметром указатель на функцию?
Друзья! Вот тут всё понятно, есть класс, в котором приватная функция f_0, в конструкторе
передаётся указатель на функцию f_1. Эта функция (f_0 или f_1, у них одинаковые прототипы) будет использоваться в классе в дальнейшем, но мне её надо как-то в класс передать. Вот, передаю, не передаётся


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
template <typename T>
class klass {
 public:
  //Вот тут присваивание
  klass(void(*f)()){f_0= f;};
 private:
  void f_0 () {};
};
 
 
//Определение функции
template <class T>
void f_1 () {}
 
 
int main() {
 //А тут ругань
 klass<int> ob (f_1<int>);
 return 0;
}
То есть я хочу сделать аналог как бы, допустим, предикату. Вот например как здесь:
http://www.cplusplus.com/reference/algorithm/find_if/

Ну и сразу же, если вместо конструктора использовать обычную функцию (то есть без классов вообще), то всё передаётся хорошо:
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
#include <windows.h>
#include <stdio.h>
 
 
template <class T>
int osnovnaya_funktsia () {
 printf ("привет, дуралеи!\n"); 
}
 
 
int prosto_funktsia (int(*f)()){
 int(*f_)();
 f_= f;
 printf ("____привет, дуралеи!\n"); 
 f_();
};
 
 
int main () {
 SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
 prosto_funktsia (osnovnaya_funktsia<int>);
 getchar ();
 return 0;
}
спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru