Héritage et polymorphisme de classe de base C ++

Héritage et polymorphisme de classe de base C ++

 

Fonction virtuelle:

Les fonctions virtuelles des sous-classes remplaceront les fonctions du même nom de la classe de base.

 

Fonction non virtuelle:

Quel type de déclaration de pointeur est, vous ne pouvez accéder qu'aux fonctions appartenant à la classe. .

Portez une attention particulière au type de déclaration du pointeur. . . . Cela n'a rien à voir avec son nouveau type. . . Non pertinent. .

 

classe Base 
{ 
public : 
    Base () {}; 
    ~ Base () {};
public :
     virtual  void printHello () 
    { 
        cout << " Base: Base say hello " << endl; 
    } 

    void printName () 
    { 
        cout << " Base: I am Base " << endl; 
    } 

    void printDate () 
    { 
        cout << " Base: Base 6666 " << endl; 
};

classe Drive: base publique 
{ public : 
    Drive () {}; ~ Drive () {};
public :
     virtual void printHello () 
    { 
        cout << " Drive: Drive say hello " << endl; 
    } void printName () 
    { 
        cout << " Drive: Je suis Drive " << endl; 
    } void printAge () 
    { 
        cout << " Drive: 29 ans "

     

    

    endl; 
    } 

}; 



int main ( int argc, char * argv []) 
{ 
    // Test1 ();
     // Test2 ();
     // Test3 ();
     // Test4 ();
     // Test5 ();
     // Test6 ();
     // Test7 (); 

    Base * objB1 = new Drive (); 
    objB1- > printHello (); 
    objB1- > printName (); 
    objB1- > printDate ();
 //     objB1-> printAge ();   / / Le compilateur signalera une erreur

/// La sortie est la suivante: 
//   Drive: Drive say hello
 //   Base: I am Base
 //    Base: Base 6666 


    cout << endl; 
    system ( " pause " );
     return  0 ; 
}

 

Je suppose que tu aimes

Origine www.cnblogs.com/music-liang/p/12726786.html
conseillé
Classement