Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 25.07.2018
Сообщений: 33
1

Не могу создать указатель на перегруженную функцию-член класса

29.12.2018, 13:01. Показов 451. Ответов 6
Метки нет (Все метки)

Есть функция монстр из vulkan api. Она является членом класса. Просто написать её название не получается, потому что она перегружена. Каким образом мне сказать компилятору , какую версию использовать, а создать указатель на неё это ****.
Есть ли какое-то быстрое решение этой проблемы без трёхэтажный объявлений?
Если необходимо, скину код.

Добавлено через 1 час 24 минуты
Простым языком, нужно передать перегруженную функцию-член в параметр для функции.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.12.2018, 13:01
Ответы с готовыми решениями:

Почему без приведения типа невозможно выбрать нужный указатель на перегруженную функцию-член?
#include <iostream> #include <functional> using namespace std; class Callable { public: ...

Не могу создать указатель на функцию. ошибка: нестандартный синтаксис; используйте "&", чтобы создать указатель на член
Выбивает ошибку, когда хочу присвоить переменной адрес какой то функции. Ошибка в строке 28(если...

Как создать указатель на функцию-член класса и вызвать его?
Подскажите как правильно сделать, а в дальнейшем вызвать указатель на функцию член класса:...

Указатель на функцию-член класса
Нужно передать указатель на функцию класса A изнутри самого класса А в функцию, в качестве...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
6
249 / 219 / 63
Регистрация: 30.07.2013
Сообщений: 465
29.12.2018, 13:34 2
static_cast:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <functional> 
 
struct Foo
{
    void method(int x) {}
 
    void method(double x) {}
};
 
template <class F>
void bar(F f) {}
 
int main()
{
    Foo f;
    bar(static_cast<void(Foo::*)(int)>(&Foo::method));
}
1
0 / 0 / 0
Регистрация: 25.07.2018
Сообщений: 33
29.12.2018, 21:39  [ТС] 3
Спасибо , но , может быть я тупой , но как мне создать функцию , подобную функции , на которую есть указатель , но с другим определением, не переписывая всё вручную. Возможно ли это , либо придётся переписывать объявления?
0
14121 / 7582 / 1802
Регистрация: 30.01.2014
Сообщений: 12,684
29.12.2018, 22:34 4
НемецкийКот, теперь точно ничего не понятно что вы хотите.
0
Комп_Оратор)
Эксперт по математике/физике
8669 / 4383 / 596
Регистрация: 04.12.2011
Сообщений: 13,112
Записей в блоге: 16
29.12.2018, 23:06 5
НемецкийКот, оно кривовато и наспех, но может это то, что Вы ищете:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
struct Overloaded_functions_owner
{
    int foo(int a){return a;}
    int foo(int a, int b){return a+b;}
 
};
 
int main(int argc, char **argv)
{
typedef int (Overloaded_functions_owner::*foo_ptr_1_int)(int a);
typedef int (Overloaded_functions_owner::*foo_ptr_2_int)(int a, int b);    
   foo_ptr_1_int foo_int1_ptr=&Overloaded_functions_owner::foo;
   foo_ptr_2_int foo_int2_ptr=&Overloaded_functions_owner::foo;
   Overloaded_functions_owner own;
   Overloaded_functions_owner *own_ptr=&own;
 cout<< (own_ptr->*foo_int1_ptr)(123)<<'\n';
 cout<< (own_ptr->*foo_int1_ptr)(123+111)<<'\n';
cin.get();
return 0;
}
1
0 / 0 / 0
Регистрация: 25.07.2018
Сообщений: 33
30.12.2018, 00:28  [ТС] 6
Я сам уже не понимаю, что хочу. Но спасибо большое.
0
Комп_Оратор)
Эксперт по математике/физике
8669 / 4383 / 596
Регистрация: 04.12.2011
Сообщений: 13,112
Записей в блоге: 16
30.12.2018, 00:32 7
Цитата Сообщение от НемецкийКот Посмотреть сообщение
Я сам уже не понимаю, что хочу.
Начинаете понимать, что без объекта нельзя вызвать функцию-член?
Цитата Сообщение от НемецкийКот Посмотреть сообщение
Но спасибо большое.
Не за что.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.12.2018, 00:32

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Указатель на функцию - член класса.
делаю так: class c1 { void foo(); } class c2 { void (*fp)();

Указатель на функцию-член одного класса в другом классе - C++
Добрый вечер! Может кто-то может помочь с проблемой. class Cook { public: void ...

std::bind и указатель на статическую функцию член класса
Биндинг простых функций класса-это понятно, а вот как быть, если функция статическая?

Std::thread, создать указатель на член класса
Есть класс #pragma once #include &lt;map&gt; #include &lt;vector&gt; #include &lt;string&gt; #include &lt;thread&gt;...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

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