Héritage : petit problème
Bonjour à tous,
Mon problème en deux mots: J'aimerai pouvoir appeller une méthode d'une classe dérivé depuis un tableau de sa classe de base.
Regardez la fonction main() dans ma source: ici, le compilo (et il a raison) me signale que la classe A n'a pas de méthode du nom de BB() même si (c'est que je suis embêté) il s'agie à la base d'une classe de type B.
Donc: comment éviter de perdre l'accès à la méthode B() de la class BB alors que je la foue dans un vecteur de class A ! (A est la base de B)
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 30 31 32 33 34 35 36 37 38
| using namespace std;
class A
{
public:
void AA()
{
cout<<"Je suis de type A"<<endl;
}
};
class B: public A
{
public:
void BB()
{
cout<<"Je suis de type B"<<endl;
}
};
class C: public A
{
public:
void CC()
{
cout<<"Je suis de type C"<<endl;
}
};
int main(int argc, char *argv[])
{
vector<A*> Vec;
B* CB = new B;
Vec.push_back(CB);
Vec[0].BB();
system("PAUSE");
return EXIT_SUCCESS;
} |
Une idée ?
Dans l'attente de vos réponses ...