Я хочу создать массив указателей на методы, чтобы можно было быстро выбрать метод для вызова на основе целого числа. Но у меня немного проблемы с синтаксисом.
Теперь у меня есть следующее:
class Foo {
private:
void method1();
void method2();
void method3();
void(Foo::*display_functions[3])() = {
Foo::method1,
Foo::method2,
Foo::method3
};
};
Но я получаю следующее сообщение об ошибке:
[bf@localhost method]$ make test
g++ test.cpp -o test
test.cpp:11:9: error: cannot convert ‘Foo::method1’ from type ‘void (Foo::)()’ to type ‘void (Foo::*)()’
11 | };
| ^
test.cpp:11:9: error: cannot convert ‘Foo::method2’ from type ‘void (Foo::)()’ to type ‘void (Foo::*)()’
test.cpp:11:9: error: cannot convert ‘Foo::method3’ from type ‘void (Foo::)()’ to type ‘void (Foo::*)()’
make: *** [: test] Error 1
Подробнее здесь: https://stackoverflow.com/questions/745 ... d-pointers