Accès aux variables de classe lors de l'héritage

Le problème exposé dans ce sujet a été résolu.

Bonjour,

J’ai une incompréhension sur le code ci-dessous :

#include <iostream>

class A {
public:
    A() : a(5) {};
    virtual void foo() {
        std::cout << a << std::endl;
    };
    
    int a;
};

class B : public A {
public:
    B() : a(9) {};
    int a;
};


int main(void) {
    B b;
    b.foo();
    return 0;
}

En effet, j’obtiens en sortie 5 (valeur de la classe A) et non 9 (valeur de la classe B). Je comprends que la méthode foo accède à la variable de la classe dans laquelle elle est définie (ici A), comment puis-je faire qu’elle accède à la variable de B une fois héritée ?

Merci d’avance pour vos réponses.

Edit : ça m’apprendra à pas me relire, la variable a est redéfinie dans la classe B, d’où le problème décris.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte