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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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);