вопрос по ICCAVR указатель на функцию в описании класса как правильно инициализировать.
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Julien 16 апреля 2004 г. 16:38

Как в IAR С++ описании объекта правильно работать с указателями на функцию внутри объекта


пример
//из .h файла определение типа
typedef void (*pFunc_void_u_char)(unsigned char ); // тип указ. на функ1
typedef unsigned char (*pFunc_u_char_void)(void);// тип указ. на функ2

// определение класса

class Keybord
{public:
Keybord(); // ???????????
//~~~~~

pFunc_u_char_void GetColKey; // переменная - указатель на функцию
pFunc_void_u_char SetLineKey; // переменная - указатель на функцию

unsigned char GetColKeyDummy(void); //
void SetLineKeyDummy(unsigned char Count_Line); //
//---------------------------------------//
private:
unsigned char arrKey[NumberScanLine]; //
unsigned char arrDelayKey[NumberScanLine];//

//~ ~ ~ ~

};

// конструктор где инициализируются указатели на функцию
Keybord::Keybord()
{
// сдесь я хотел бы проинициализировать указатели конкретными адресами функций но ...
GetColKey = GetColKeyDummy; // пишет ошибка
//Error[Pe513]: a value of type "unsigned char (__nearfunc Keybord::*)//()" cannot be assigned to an entity of type "pFunc_u_char_void"

SetLineKey = SetLineKeyDummy;// пишет ошибка
//Error[Pe513]: a value of type "void (__nearfunc Keybord::*)(unsigned //char)" cannot be assigned to an entity of type "pFunc_void_u_char"
}

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru