реклама на сайте
подробности

 
 
> C++ массив указателей на функцию, помогите разобраться.
Rusoil
сообщение Mar 6 2009, 20:13
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 21-01-09
Пользователь №: 43 695



Имеем класс для работы с модемом SIM300. В данном классе есть методы вида SIM300::AT_XXX().
Имеем список enum с индексами методов, вид eAT_XXX.

В определенный момент нужно запускать метод установив соответствующий индекс. Можно сделать через switch-case так.
switch( eInd )
{
case eAT_XXX:
AT_XXX();
break;
...
}

Но так долго, нужно быстрее. Я попытался сделать массив указателей на функцию.

static void (__code __interwork SIM300::*pCmdFunc[eCMD_QNT] )() =
{
SIM300::AT_CPOWON,
...
}

Компилятор не ругается. т.е. вроде как все норм.
Но когда осуществляю вызов функции в одном из методов класса SIM300:

(pCmdFunc[eCmdInd])();

то компилятор выдает ошибку

Error[Pe109]: expression must have (pointer-to-) function type

Я использовал раньше массив указателей на функции, но на обычные функции, а не на методы класса. Там все работало.

Есть у кого-нибудь идеи? Может как-то по другому можно решить данную проблему?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 00:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016