С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
14 / 14 / 8
Регистрация: 26.09.2007
Сообщений: 919

Адрес функции класса

03.11.2021, 20:37. Показов 575. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
26
27
class CMy
{
public:
    void My_Print()
    {
        std::cout << "Hello from My_Print()\n" << std::endl;
    }
 
    void (* My_Print_f)();  
 
    void Run();
};
 
void CMy::Run()
{
    My_Print_f = &My_Print;
    My_Print_f();
}
 
int main ()
{
    CMy cVal;
    
    cVal.Run();
    
    return 0;
}
Этот код выдает ошибку
error C2276: '&' : illegal operation on bound member function expression

Мне надо сделать код рабочим, но только что бы функция void My_Print() не была статической. Если функция статическая- все работает. Но мне надо что бы она была не статтическая. Кто знает решение?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.11.2021, 20:37
Ответы с готовыми решениями:

Указатель на объект базового класса и адрес объекта производного класса
Пример кода: class Class1 { public: Class1(int x) { j = new int; *j = x; } ~Class1() {delete j;}

Функция возвращает адрес , как передать этот адрес другой функции ?
const int max = 5; double * fill_array(double, int); void show_array(const double, double *); // как передать этой функции в...

Узнать адрес функции 2, зная адрес функции 1
Допустим две функции расположены так: int f1() { return 1; } int f2() { return 2; } int main() { int (*p_f1)() = f1;...

2
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
03.11.2021, 22:22
kurlyak, не понятно, зачем вам это нужно, но, надеюсь, не окажу медвежью услугу
C++
1
2
3
4
5
6
7
8
...
void (CMy::* My_Print_f)();
...
void CMy::Run()
{
    My_Print_f = &CMy::My_Print;
    (this->*My_Print_f)();
}
А вообще есть std::function и std::bind
1
14 / 14 / 8
Регистрация: 26.09.2007
Сообщений: 919
04.11.2021, 13:17  [ТС]
Я нашел код за 97 год в интернете, переделываю под ООП. Спасибо огромное!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.11.2021, 13:17
Помогаю со студенческими работами здесь

Какими способами можно использовать функции класса B, как параметры функции Sub класса А?
class A {... void Sub(...); ...} class B : ... { public: float f1(float); float f2(float); ...

Известны данные о 25-ти учениках класса: фамилия, имя, отчество, адрес и домашний телефон, если он есть. Вывести на экран фамилию, имя и адрес ученико
Известны данные о 25-ти учениках класса: фамилия, имя, отчество, адрес и домашний телефон, если он есть. Вывести на экран фамилию, имя и...

Вычислить адрес верхушки стека, адрес следующей команды, адрес переменной, адрес которой содержится в BX
Помогите решить следующие задачи: 1.Вычислить адрес верхушки стэка. 2.Вычислить адрес следующей выполняемой программы. 3. Вычислить...

Адрес объекта класса
как можно получить адресс обьекта класса например создаю я класс в котором будет указатель типа моего класса, и мне надо в конструкторе...

Адрес сети класса C
Всем привет) Такой вопрос: на сколько подсетей (при помощи не стандартных масок) можно разбить адрес сети класса C?


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru