Как я могу создать массив указателей на методы?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Как я могу создать массив указателей на методы?

Сообщение Anonymous »

Я хочу создать массив указателей на методы, чтобы можно было быстро выбрать метод для вызова на основе целого числа. Но у меня немного проблемы с синтаксисом.
Теперь у меня есть следующее:
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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»