Bonjour

j'ai une classe Classe qui contient entre autre une structure nommée INSTRUCTION avec 2 pointeurs sur fonction + 1 tableau:

Classe.h:
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
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
 
#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 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
 
 
#include "Classe.cpp"
 
int main(){
 
 
	Classe classe;
	std::cout << classe.table[1].longueur << std::endl;
 
	classe.table[0].ptr_f_1;
 
	return 0;
}
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
 
 
classe.table[0].ptr_f_1;
Cependant, même si G++ compile, il ne se passe rien à l'exécution...

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+