Bonjour,

J'ai des classes héritant d'une classe possédant une méthode compare. J'aimerais surcharger ces méthodes dans les classes filles comme dans l'exemple suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
class A
{
public:
	virtual void compare(A& a) { std::cout << "A"; }
};
 
class B : public A
{
public:
	void compare(B& b) { std::cout << "B"; }
};
Le virtual ne sert à rien ici et le code suivant retourne "A".

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
B b1, b2;
A * a1, * a2;
a1 = &b1;
a2 = &b2;
a1->compare(*a2);
Le problème c'est que lors que je dois appeler compare je n'ai que des pointeurs ou des références sur A. Est-ce que j'ai une solution pour gérer ça simplement?

Merci