pointeur sur fonction // syntaxe
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:
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:
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:
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:
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+