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; }
j'ai egalement une erreur das l'appel de la fonction
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];
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);
Partager