2010-03-08 6 views
1

J'ai une question sur la façon d'accéder au membre avec le même nom avec l'héritage. Par exemple,Comment accéder au membre avec le même nom dans l'héritage

class Base { 

public: 
int i; 

}; 
class Derived1 : public Base { 

    public: 
    int i; 

    // how to access the i in the base class here? 
}; 

int main() { 

    Derived1 d; 
    cout<<d.i;       //which is it is? 

    //how to access the different i here? 

} 

Répondre

10

d.i dans votre exemple fait référence à la i dans la classe dérivée.

Vous pouvez vous référer à la classe de base i en le qualifiant avec le nom de la classe de base:

d.Base::i 

En général, il est une mauvaise idée d'avoir dérivé des classes avec des membres ayant le même nom que les membres des classes de base .

+0

+1 pour avoir répondu à la question posée et pour signaler que ce n'est généralement pas une bonne idée de le faire. –

Questions connexes