// virtual (3) // 親クラスのメンバ関数を使う、うまくいく例。 #include <stdio.h> class Canimal { public: virtual 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 ; }