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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
#1

Анонимные функции, как параметр - C++

26.03.2014, 20:13. Просмотров 1887. Ответов 21
Метки нет (Все метки)

Здравствуйте. Есть проблема - много функций, каждой придумывать имена не хочу, тем более, что они мне не пригодятся. Суть такова:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void _F()
{
  Bla-bla-bla;
}
 
class Object
{
public:
  void (*F)();
 
  Object(_F){F=_F;}
  ~Object(){}
};
Object MY(_F);
Подскажите как сделать то-же, но минуя имя? Например, вместо:
C++
1
Object MY(_F);
нечто вроде:
C++
1
Object MY((Bla-bla-bla;));
Добавлено через 1 минуту
классно, что закрывающаяся скобка функции и точка с запятой - это
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.03.2014, 20:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Анонимные функции, как параметр (C++):

String как параметр функции - C++
Подскажите, пожалуйста, что здесь не так. При компиляции выдаёт "синтаксическая ошибка: идентификатор "string"". Пробовал убрать <string> и...

лямбда как параметр функции - C++
здравствуйте, есть код: template<typename Container, typename...Args> void fafa(Container&& c, std::function<Args...> f) { ...

Имя файла как параметр функции - C++
Необходимо заполнить массив из файла, для этого нужно создать отдельную функцию параметром которой будет являться имя файла. Хотелось бы...

Задать функцию как параметр функции - C++
Написал программу для решения уравнения с вырожденным ядром, где по ходу решения вышли две по три идентичные функции. Хотел бы узнать как...

Динамический массив как параметр функции - C++
Господа, прошу Вас помочь с функцией. Собственно говоря, необходимо с помощью функции заполнить несколько двумерный динамических...

Передача функции как параметр шаблона - C++
Хочу передавать в шаблон любую функцию без параметров и вызывать ее из него. Как это сделать? Не работает, но примерно так должно...

21
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
27.03.2014, 13:45  [ТС] #16
Цитата Сообщение от Tulosba Посмотреть сообщение
Если в каждой единице трансляции, которую Вы называете библиотекой будут только одна функция Draw*()
Нет, это для простоты. На самом деле у класса значительно больше адресов функций.

Добавлено через 2 минуты
Кроме вывода на экран объект нужно вращать, двигать, делать очень многие вещи. Но каждая из этих вещей каждым объектом делается по разному.

Добавлено через 4 минуты
Цитата Сообщение от 0x10 Посмотреть сообщение
Решается определением базового класса/интерфейса в библиотеке и конкретных реализаций в клиентах.
Вы имеете ввиду для каждого объект создавать свой класс с наследованием класса Object, в которо описаны все общие параметры?
0
0x10
2465 / 1637 / 240
Регистрация: 24.11.2012
Сообщений: 4,039
27.03.2014, 13:50 #17
Цитата Сообщение от Retyrn0 Посмотреть сообщение
Вы имеете ввиду для каждого объект создавать свой класс с наследованием класса Object, в которо описаны все общие параметры?
Да.

Судя по этому
Цитата Сообщение от Retyrn0 Посмотреть сообщение
Кроме вывода на экран объект нужно вращать, двигать, делать очень многие вещи. Но каждая из этих вещей каждым объектом делается по разному.
Случай прям как по учебнику.
0
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
27.03.2014, 13:58  [ТС] #18
Цитата Сообщение от 0x10 Посмотреть сообщение
Да.
Такая штука, например, нужно все объекты отобразить на экране из библиотеки, которая ничего не знает о существовании потомков класса Object. В этом вся проблема.

Добавлено через 3 минуты
Единственный выход - создать списки адресов функций в основной библиотеке, который инициализируется из библиотек объектов, в которой циклом выполняются функции по адресам, но тогда теряется смысл использования ООП. Я изначально собирался так сделать, но потом решил попытаться сделать "по человечески" - с ООП.
0
0x10
2465 / 1637 / 240
Регистрация: 24.11.2012
Сообщений: 4,039
27.03.2014, 13:59 #19
Цитата Сообщение от Retyrn0 Посмотреть сообщение
нужно все объекты отобразить на экране из библиотеки, которая ничего не знает о существовании потомков класса Object
Пусть принимает Object*, этого будет достаточно.
0
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
27.03.2014, 14:02  [ТС] #20
Цитата Сообщение от 0x10 Посмотреть сообщение
Пусть принимает Object*, этого будет достаточно.
Ааа. Т.е. в родительском классе оставить адреса функций, просто инициалзировать их из дочерних? Тогда да, спасибо!
0
0x10
2465 / 1637 / 240
Регистрация: 24.11.2012
Сообщений: 4,039
27.03.2014, 14:03 #21
Не адреса функций, а виртуальные методы.
0
Retyrn0
45 / 45 / 3
Регистрация: 24.06.2013
Сообщений: 677
Завершенные тесты: 1
27.03.2014, 14:15  [ТС] #22
Цитата Сообщение от 0x10 Посмотреть сообщение
Не адреса функций, а виртуальные методы.
Гляну что быстрее. В общем всем спасибо за пищу для ума и экспериментов, буду пробовать.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2014, 14:15
Привет! Вот еще темы с ответами:

Указатель как входной параметр функции - C++
#include <iostream> const int Max = 5; int* fill_array(double ar, int limit); void show_array(const double ar, int* n) ; int*...

Указатель на структуру, как параметр функции - C++
Господа программисты! Прошу вашей помощи! Помогите передать функции в качестве аргумента указатель на структуру. Вот что есть: struct...

Двумерный массив как параметр функции - C++
Есть такая функция, загружающая элементы из бинарного файла в массив bool m1: void loadfromfile(char *filename, int col, int row) {...

Как передать элемент структуры, как параметр функции - C++
Помогите, пожалуйста. Есть структура, необходимо создать функцию сортировки, но при этом, чтобы можно было передавать элемент структуры,...


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

Или воспользуйтесь поиском по форуму:
22
Yandex
Объявления
27.03.2014, 14:15
Ответ Создать тему
Опции темы

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