ce code ne compile pas, je ne comprends pas pourquoi
question : pourquoi ce code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| class A
{
public:
void a(int i);
virtual void a(int i, int j);
};
class B : public A
{
public:
void a(int i, int j);
};
int main()
{
B().a(0);
} |
ne compile pas ? il dit que la methode a ne prend pas un seul argument en parametre. en d'autres termes, il ne va pas chercher dans la classe A une methode qui fait pourtant partie de l'interface publique. je suis surpris car a mon avis, ce genre de chose n'est absolument pas difficile a resoudre pour un compilateur.
Existe t'il donc une raison valable ?
ce code a été testé avec comeau en ligne et visual c++, et je pense donc qu'il existe une raison valable pour qu'il soit rejeté...