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

Вызов функции с неизвестным именем - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Проверка на повторный ввод элемента массива http://www.cyberforum.ru/cpp-beginners/thread630295.html
Вот код во время проверки на повторный ввод элемента массива получается бессконечный цыкл и еще одна проблема при проверке на ввод чисел тоже запускается бессконечный цикл.Помогите пож. int i, j, k=0; cout<<"Введите первое множество"<<endl; do{ cout<<"Количество элементов = "; cin>>n; if(cin.good()== false) {
C++ Случайные числа Подскажите функцию(или класс а вней функцию) для генерирования случайных чисел аналог Random.Next() C# http://www.cyberforum.ru/cpp-beginners/thread630270.html
Ввод\вывод в файл C++
Здравствуйте! Подскажите пожалуйста, как ПРАВИЛЬНО организовать ввод и вывод в файл в С++.И ещё,подскажите как в файле при чтении или записи в него переходить на следующую строку.Заранее спасибо!
Идеально сбалансированное дерево C++
Интересует как работает этот кусок кода) по идеи Create(&tmp->right, nr); сюда компилятор никогда не доберется? и еще как она выходит из цикла без return; void Create(TREE **current, int n) { int count = 0; if(n==0) *current=NULL; else {
C++ Функция, которая позволяет выбрать имплементацию члена класса http://www.cyberforum.ru/cpp-beginners/thread630244.html
Код ниже компилируется Хочется добавить фунцию в мейн , которая бы выбирала имплементацию конструктора Line class между колон синтаксисом и обычным Другими словами, чтобы в файле Line_cpp Функция по заданнаму желаю юзера выбирала между этом кодом Line::Line (const Point& NewStartPoint,const Point& NewEndPoint): StartPoint(NewStartPoint),EndPoint(NewEndPoint) { // StartPoint = ...
C++ Программа задание-ответ И снова здрасти :) Возникла необходимость создания программы по типу Вопрос-Ответ. Т.е. программа задаёт вопрос, в случае если ответят верно - переход к след. вопросу, если нет - ещё 1 попытка или сообщение что ответ не верный(можно и без этого конечно). Всего 4 вопроса. Если у кого есть свободное время, не могли бы Вы написать хотя бы начальный код (для 1 вопроса). В качестве примера можно... подробнее

Показать сообщение отдельно
HomeR_J_SimpsoN
59 / 59 / 2
Регистрация: 15.10.2010
Сообщений: 356
29.07.2012, 15:39     Вызов функции с неизвестным именем
Произвольную ф-ию Вам вызвать не удастся. Не известен потому как список параметров.
Но можно сделать следующее:
C++
1
typedef void (*SomeFunc)(int, float, double);
То есть определяете прототип ф-ии как тип.
Далее если у Вас есть некая ф-ия с таким же прототипом, Вы можете взять ее адрес:
C++
1
SomeFunc tmp = &myFunc;
Где
C++
1
void myFunc(int, float, double);
Таким образом переменной tmp Вы можете присвоить различные ф-ии одного прототипа.
И вызывать любую из них выражением вида
C++
1
tmp(a, b, c);
А вот из char * вытащить ф-ию Вам вряд ли удастся.
Если только она не лежит в библиотеке... Тогда эту библиотеку можно подключить динамическим образом (на этапе выполнения приложения) и импортировать ф-ию, зная ее название. Возможно, даже на уровне char *. В MSVS я не практиковал подобное. В кутах - точно можно. Если интересно - почитайте.

Но в целом суть такая же, как описано выше:
C++ (Qt)
1
2
3
4
5
 QLibrary myLib("mylib");
 typedef void (*MyPrototype)();
 MyPrototype myFunction = (MyPrototype) myLib.resolve("mysymbol");
 if (myFunction)
     myFunction();
 
Текущее время: 21:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru