C** Declaration de tableau de pointeur de fonction
Bonjour
dans le cadre d'un exercice d'apprentissage du C++ (std=c++98) j'essaye de déclarer un tableau de pointeur de fonction mais une erreur survient lors de la compilation :
array type 'PhoneBook::func' (aka 'void (PhoneBook::*[3])(...)') is not assignable
this->_cmd_tab[add]. pfunc = &PhoneBook::_addContact;
je ne vois pas d'ou viens l'erreur.
mon tableau et type est declaré comme suit :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
PhoneBook::PhoneBook(void)
{
std::cout << "Constructor PhoneBook Called" << std::endl;
.....
this->_cmd_tab[add]. pfunc = &PhoneBook::_addContact;
this->_cmd_tab[search].cmd = DLG_INP_CMD_02;
this->_cmd_tab[search].pfunc = &PhoneBook::_searchContact;
this->_cmd_tab[exit].cmd = DLG_INP_CMD_03;
this->_cmd_tab[exit].pfunc = &PhoneBook::_exit;
return;
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
public:
.....
typedef void (PhoneBook::*func[CMD_TAB_SIZE])(...);
struct Scmd
{
std::string cmd;
PhoneBook::func pfunc;
} Tcmd;
private:
....
Scmd _cmd_tab[CMD_TAB_SIZE]; |
j'ai egalement une erreur das l'appel de la fonction
srcs/PhoneBook.cpp:76:7: error: right hand operand to ->* has non-pointer-to-member type 'PhoneBook::func' (aka 'void (PhoneBook::*[3])(...)')
(this->*_cmd_tab[nCmd].pfunc)(this);