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 ; }