// virtual (2) // 親クラスのメンバ関数を使う、うまくいかない例。 #include <stdio.h> class Canimal { public: void greet(void){printf("???\n") ;} } ; class Ccat : public Canimal{ public: void greet(void){printf("にゃ〜\n") ;} } ; class Cdog : public Canimal{ public: void greet(void){printf("わんわん\n") ;} } ; static void greet(Canimal& anAnimal) { anAnimal.greet() ; // Canimalの子クラスなら誰でも使える } int main(void) { Ccat aCat ; Cdog aDog ; greet(aCat) ; greet(aDog) ; return 0 ; }