ошибки компилятора — Как назначить функцию-член указателю на функцию-член в переполнении стека

Я пытаюсь назначить функцию-член указателю на функцию-член в C ++, но получаю ошибку. У меня есть такой код:

#ifndef MY_CLASS_H
#define MY_CLASS_H

class MyClass {
MyClass* (MyClass::*memPtr_) (ParamType);
public:
void myFunction();
void myFunction2();
void myFunction3();

MyClass& foo(ParamType var);
MyClass& bar(ParamType var);
MyClass& fooBar(ParamType var);
...
};

#endif

а также…

void MyClass::myFunction() {
memPtr_ = &MyClass::foo;

void MyClass::myFunction2() {
memPtr_ = &MyClass::bar;

void MyClass::myFunction3() {
memPtr_ = &MyClass::fooBar;

И на линии

memPtr_ = &MyClass::foo;

а также

memPtr_ = &MyClass::bar;

а также

memPtr_ = &MyClass::fooBar;

когда я компилирую — я получаю ошибку:

"cannot convert 'MyClass& (MyClass::*)(ParamType)'
to MyClass* (MyClass::*)(ParamType)' in assignment."

Я искал — но я не могу найти решение этой проблемы — каков правильный синтаксис для назначения функции-члена указателю на функцию-член ‘memPtr_’?

1

Решение

Джрок прав, и я исправил проблему. Я просто изменился:

MyClass * (MyClass :: * memPtr_) (ParamType);

чтобы …

Мои занятия& (MyClass :: * memPtr_) (ParamType);

2

Другие решения

Вы не берете адрес имени функции без ()это указатель.

0

По вопросам рекламы [email protected]