Bonjour
j'ai une classe Classe qui contient entre autre une structure nommée INSTRUCTION avec 2 pointeurs sur fonction + 1 tableau:
Classe.h:
Classe.cpp:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 #ifndef _CLASSE #define _CLASSE #include <iostream> #include <vector> class Classe{ public: struct INSTRUCTION{ int longueur; void (Classe::*ptr_f_1)(void) = nullptr; void (Classe::*ptr_f_2)(void) = nullptr; }; std::vector<INSTRUCTION> table; public: Classe(); ~Classe(); void fonction_1(); void fonction_2(); void fonction_3(); void fonction_4(); }; #endif
voici mon main:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #include "Classe.h" Classe::~Classe(){} Classe::Classe(){ table = { {2,&Classe::fonction_1,&Classe::fonction_2}, {3,&Classe::fonction_3,&Classe::fonction_4}, }; } void Classe::fonction_1(){ std::cout << "fonction_1." << std::endl; } void Classe::fonction_2(){ std::cout << "fonction_2." << std::endl; } void Classe::fonction_3(){ std::cout << "fonction_3." << std::endl; } void Classe::fonction_4(){ std::cout << "fonction_4." << std::endl; }
Voici mon problème: je n'arrive à lancer aucun fonction membre de ma classe dans mon main(). J'ai essayé plein de syntaxes différentes et la seule qui est compilée sans erreur est celle-ci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include "Classe.cpp" int main(){ Classe classe; std::cout << classe.table[1].longueur << std::endl; classe.table[0].ptr_f_1; return 0; }
Cependant, même si G++ compile, il ne se passe rien à l'exécution...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 classe.table[0].ptr_f_1;
Help! Quelle est la bonne syntaxe? Qu'est-ce qui cloche dans mon code?
Merci infiniment pour le temps que vous accorderez à m'aider!
A+
Partager