Я хочу создать массив указателей статической функции, чтобы я мог перейти к определенной функции относительно полученного индекса. Как индексная перемычка.C++ Инициализация массива указателей статической функции
Так себе класс, как это:
Class A
{
private:
static void 1stFunction();
static void 2ndFunction();
static void(*functionPointer[20])(void);
};
Тогда я хотел бы, что functionPointer получить значение 1stFunction и 2ndFunction, и, возможно, даже больше. Итак, как мне его инициализировать? Насколько я знаю, когда объявлен статический член, вы можете использовать его еще до создания экземпляра. Так что я, хотя, позволяет инициализировать эту указатель на функцию, поэтому позже я могу назвать это как этот
functionPointer[receivedIndex]();
Так я пытался initilize это так, в том же самом файле .h
void (*A::functionPointer[])(void) =
{
A::1stFunction,
A::2ndFunction,
};
Но компилятор дает мне уточнение, он говорит, что он уже создан.
Итак, я уверен, что чего-то не хватает. Я не знаю, хотя, если это синтаксис или просто невозможно сделать это таким образом. Я знаю, что указатели на функции-члены класса отличаются от обычных указателей функций ... Но это статическая функция, поэтому я считаю, что она не принадлежит экземпляру, и поэтому она должна работать с обычными указателями функций.
Любая помощь будет оценена по достоинству. Спасибо
[Невозможно воспроизвести] (http://coliru.stacked-crooked.com/a/b190ad02af50c68a), пожалуйста, отправьте сообщение [mvce] (http://stackoverflow.com/help/mcve). – TartanLlama
'A' отличается от' streamHandler', не так ли? – harper
Это все еще не mvce. Почтовый код без ошибок синтаксиса, который отображает проблему, с которой вы столкнулись. – TartanLlama