Bonjour,

Je suis à la recherche de la bonne formulation. J'ai pu écrire ceci qui fonctionne:

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
 
class A
{
	public:
		A() {}
		~A() {}
		void run() { result = (*ptr)(); }
	protected:
		bool result;
		bool (*ptr)();
};
 
class B: public A
{
	public:
		B() { ptr = &myFunction; }
		~B() {}
		static bool myFunction() { return true; }
};
 
int main()
{
	A* p = new B();
	p->run();
 
	return 0;
}
Mais j'aimerais pouvoir faire là même chose sans que ma fonction dans la classe B ne soit statique. C'est à dire quelque chose qui pourrait ressembler à ceci (qui ne marche pas):

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
 
class A
{
	public:
		A() {}
		~A() {}
		void run() { result = (*ptr)(); }
	protected:
		bool result;
		bool (A::* ptr)();
};
 
class B: public A
{
	public:
		B() { ptr = &myFunction; }
		~B() {}
		bool myFunction() { return true; }
};
 
int main()
{
	A* p = new B();
	p->run();
 
	return 0;
}

Auriez-vous comme toujours une bonne idée en stock ?

Caduchon.